26 Numerics library [numerics]

26.6 Random number generation [rand]

26.6.2 Requirements [rand.req]

26.6.2.3 Uniform random bit generator requirements [rand.req.urng]

A uniform random bit generator g of type G is a function object returning unsigned integer values such that each value in the range of possible results has (ideally) equal probability of being returned.
[Note
:
The degree to which g's results approximate the ideal is often determined statistically.
end note
]
template<class G>
  concept UniformRandomBitGenerator =
    Invocable<G&> && UnsignedIntegral<invoke_result_t<G&>> &&
    requires {
      { G::min() } -> Same<invoke_result_t<G&>>;
      { G::max() } -> Same<invoke_result_t<G&>>;
    };
Let g be an object of type G.
G models UniformRandomBitGenerator only if
A class G meets the uniform random bit generator requirements if G models UniformRandomBitGenerator, invoke_­result_­t<G&> is an unsigned integer type ([basic.fundamental]), and G provides a nested typedef-name result_­type that denotes the same type as invoke_­result_­t<G&>.