template <class G> concept bool UniformRandomNumberGenerator = Invocable<G&> && UnsignedIntegral<result_of_t<G&()>> && requires { { G::min() } -> Same<result_of_t<G&()>>&&; { G::max() } -> Same<result_of_t<G&()>>&&; };
A uniform random number 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 ]