std::shuffle_order_engine
From cppreference.com
                    
                                        
                    
                    
                                                            
                    | Defined in header  <random> | ||
| template<     class 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 | std::shuffle_order_engine<minstd_rand0, 256> | 
| Contents | 
[edit] Template parameters
| Engine | - | the type of the wrapped engine | 
| K | - | the size of the internal table. Must be greater than 0 | 
| Type requirements | ||
| - Enginemust meet the requirements ofRandomNumberEngine. | ||
[edit] Member types
| Member type | Definition | 
| result_type | typename Engine::result_type | 
[edit] Member functions
| 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) | 
[edit] Non-member functions
| compares the internal states of the adaptors and underlying engines (function) | |
| performs stream input and output on pseudo-random number engine adaptor (function) | 
[edit] Member objects
| constexpr size_t table_size [static] | the size of the internal table, K(public static member constant) | 


