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 ]

A class G satisfies the requirements of a uniform random bit generator if the expressions shown in Table 103 are valid and have the indicated semantics, and if G also satisfies all other requirements of this section [rand.req.urng]. In that Table and throughout this section:

Table 103 — Uniform random bit generator requirements

Expression | Return type | Pre/post-condition | Complexity |

G::result_type | T | T is an unsigned integer type. | compile-time |

g() | T | Returns a value in the closed interval [G::min(), G::max()]. | amortized constant |

G::min() | T | Denotes the least value potentially returned by operator(). | compile-time |

G::max() | T | Denotes the greatest value potentially returned by operator(). | compile-time |