Defined in header <random>  

template< class Engine, std::size_t K > class shuffle_order_engine;  (since C++11) 
shuffle_order_engine
is a random number engine adaptor that shuffles the random numbers generated by the base engine. It maintains a table of size K
and delivers a randomly selected number from that table when requested, replacing it with a number generated by the base engine.
The following typedef defines the random number engine with one commonly used parameter set:
Defined in header <random> 


Type  Definition 
knuth_b (C++11)  std::shuffle_order_engine<std::minstd_rand0, 256>

Engine    the type of the wrapped engine 
K    the size of the internal table. Must be greater than 0 
Type requirements  
Engine must meet the requirements of RandomNumberEngine. 
Member type  Definition 

result_type  Engine::result_type 
constructs the engine adaptor (public member function) 

sets the state of the underlying engine (public member function) 

returns the underlying engine (public member function) 

Generation 

advances the state of the underlying engine and returns the generated value (public member function) 

advances the adaptor's state by a specified amount (public member function) 

Characteristics 

[static]  gets the smallest possible value in the output range of the underlying engine. (public static member function) 
[static]  gets the largest possible value in the output range of the underlying engine. (public static member function) 
compares the internal states of the adaptors and underlying engines (function) 

performs stream input and output on pseudorandom number engine adaptor (function) 
constexpr size_t table_size
[static]  the size of the internal table, K (public static member constant) 
© cppreference.com
Licensed under the Creative Commons AttributionShareAlike Unported License v3.0.
http://en.cppreference.com/w/cpp/numeric/random/shuffle_order_engine