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;
}