A shuffle_order_engine random number engine adaptor
produces the same random numbers
that are produced by some base engine e,
but delivers them in a different sequence.
The state xi
of a shuffle_order_engine engine adaptor object x
consists of
the state ei of its base engine e,
an additional value Y of the type delivered by e,
and
an additional sequence V of k values
also of the type delivered by e.
The size of the state is
the size of e's state plus k+1.
In addition to its behavior
pursuant to subclause [rand.req.adapt],
each constructor
that is not a copy constructor
initializes V[0], …, V[k-1] and Y,
in that order,
with values returned by successive invocations of e().