std::linear_congruential_engine
From cppreference.com
                    
                                        
                    
                    
                                                            
                    |   Defined in header <random>
   | 
||
|   template<     class UIntType,   | 
(since C++11) | |
A linear_congruential_engine produces unsigned integer pseudorandom numbers. The state of a LCG is of size 1 and consists of a single integer.
The transition algorithm of the LCG function is x
i+1 ← (ax
i+c) mod m.
Contents | 
[edit] Member types
| Member type | Definition | 
| result_type | The integral type generated by the engine. Results are undefined if this is not an unsigned integral type. | 
[edit] Member variables
|    constexpr UIntType multiplier [static]  | 
   the multiplier term (a).   (public static member constant)  | 
|    constexpr UIntType increment [static]  | 
   the increment term (c).   (public static member constant)  | 
|    constexpr UIntType modulus [static]  | 
   the modulus term (m).   (public static member constant)  | 
|    constexpr UIntType default_seed [static]  | 
   the default seed (1).   (public static member constant)  | 
[edit] Member functions
 Construction and Seeding | |
|   constructs the engine  (public member function)  | |
|    sets the current state of the engine  (public member function)  | |
 Generation | |
|    advances the engine's state and returns the generated value  (public member function)  | |
|    advances the engine's state by a specified amount  (public member function)  | |
 Characteristics | |
|    [static]  | 
   gets the smallest possible value in the output range  (public static member function)  | 
|    [static]  | 
   gets the largest possible value in the output range  (public static member function)  | 
[edit] Non-member functions
|    compares the internal states of two pseudo-random number engines   (function)  | |
|    performs stream input and output on pseudo-random number engine   (function)  | |