std::independent_bits_engine
From cppreference.com
                    
                                        
                    
                    
                                                            
                    | Defined in header  <random> | ||
| template<     class Engine,  | (since C++11) | |
independent_bits_engine is a random number engine adaptor that produces random numbers with different number of bits than that of the wrapped engine.
| Contents | 
[edit] Template parameters
| Engine | - | the type of the wrapped engine | 
| W | - | the number of bits the generated numbers should have | 
| UIntType | - | the type of the generated random numbers. The type must be unsigned integral type. | 
| Type requirements | ||
| - Enginemust meet the requirements ofRandomNumberEngine. | ||
| - Wmust be greater than zero, and no greater than std::numeric_limits<UIntType>::digits(). | ||
[edit] Member types
| Member type | Definition | 
| result_type | UIntType | 
[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 (always zero). (public static member function) | 
| [static] | gets the largest possible value in the output range (always 2w -1). (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) | 


