28.5 Random number generation [rand]
#include <initializer_list>
namespace std {
template<class G>
concept uniform_random_bit_generator = see below;
template<class UIntType, UIntType a, UIntType c, UIntType m>
class linear_congruential_engine;
template<class UIntType, size_t w, size_t n, size_t m, size_t r,
UIntType a, size_t u, UIntType d, size_t s,
UIntType b, size_t t,
UIntType c, size_t l, UIntType f>
class mersenne_twister_engine;
template<class UIntType, size_t w, size_t s, size_t r>
class subtract_with_carry_engine;
template<class Engine, size_t p, size_t r>
class discard_block_engine;
template<class Engine, size_t w, class UIntType>
class independent_bits_engine;
template<class Engine, size_t k>
class shuffle_order_engine;
using minstd_rand0 = see below;
using minstd_rand = see below;
using mt19937 = see below;
using mt19937_64 = see below;
using ranlux24_base = see below;
using ranlux48_base = see below;
using ranlux24 = see below;
using ranlux48 = see below;
using knuth_b = see below;
using default_random_engine = see below;
class random_device;
class seed_seq;
template<class RealType, size_t digits, class URBG>
RealType generate_canonical(URBG& g);
template<class IntType = int>
class uniform_int_distribution;
template<class RealType = double>
class uniform_real_distribution;
class bernoulli_distribution;
template<class IntType = int>
class binomial_distribution;
template<class IntType = int>
class geometric_distribution;
template<class IntType = int>
class negative_binomial_distribution;
template<class IntType = int>
class poisson_distribution;
template<class RealType = double>
class exponential_distribution;
template<class RealType = double>
class gamma_distribution;
template<class RealType = double>
class weibull_distribution;
template<class RealType = double>
class extreme_value_distribution;
template<class RealType = double>
class normal_distribution;
template<class RealType = double>
class lognormal_distribution;
template<class RealType = double>
class chi_squared_distribution;
template<class RealType = double>
class cauchy_distribution;
template<class RealType = double>
class fisher_f_distribution;
template<class RealType = double>
class student_t_distribution;
template<class IntType = int>
class discrete_distribution;
template<class RealType = double>
class piecewise_constant_distribution;
template<class RealType = double>
class piecewise_linear_distribution;
}