A generic random value distribution, implemented for many primitive types.
Usually generates values with a numerically uniform distribution, and with a
range appropriate to the type.
Samples floating-point numbers according to the normal distribution
N(0, 1) (a.k.a. a standard normal, or Gaussian). This is equivalent to
Normal::new(0.0, 1.0) but faster.
The standard RNG. The PRNG algorithm in StdRng is chosen to be efficient
on the current platform, to be statistically strong and unpredictable
(meaning a cryptographically secure PRNG).
Retrieve the lazily-initialized thread-local random number generator,
seeded by the system. Intended to be used in method chaining style,
e.g. thread_rng().gen::<i32>(), or cached locally, e.g.
let mut rng = thread_rng();. Invoked by the Default trait, making
ThreadRng::default() equivalent.