cpp/named req/RandomNumberEngine

A random number engine is a function object returning unsigned integer values such that each value in the range of possible results has (ideally) equal probability.

Any random number engine is also a, and therefore may be plugged into any random number distribution in order to obtain a random number (formally, a random variate).

Requirements
A type satisfying  will additionally satisfy  if, given


 * , the type named by
 * , a value of type
 * , a non-const value of type
 * , an lvalue of type
 * and, possibly const values of type
 * , an lvalue of some type satisfying
 * , a value of type
 * , an output stream
 * , an input stream

the following expressions are valid and have their specified effects:

Standard library
The following standard library facilities satisfy :

The following standard library facilities satisfy but not :