# Version 0.3.0

Documentation for version 0.3.0 of RandN. The changelog is available with the release announcement of v0.3.0.

#### Child Pages

#### Usage

A reproducible RNG can also be created by using an algorithm directly:

#### RNGs

These RNGs are good all-rounders, and should be the first to be considered. They are not reproducible and cannot be seeded, but are automatically seeded with a cryptographic RNG upon creation.

#### Distributions

The Bernoulli distribution can be thought of as a coin flip, returning either `true`

or `false`

with a probability of *p*, where *p* lies on the closed interval [0, 1]. When *p == 1*, the distribution will always return `true`

, while when *p == 0*, the distribution will always return `false`

.

#### Reproducibility

Any type implementing `IReproducibleRngFactory`

is guaranteed to be reproducible; that is, given a seed, the resulting RNG *always* will produce the same sequence. This applies across major and minor versions, even if it turns out the RNG has a bug in it. In that case, the given seed type and factory will be marked as obsolete, and a corrected version will be added. The obsolete version may be moved into a separate package for the next version-breaking upgrade.

#### Extending RandN

It's easy to extend RandN with both new RNG algorithms and new distributions. RandN includes many utility methods to make creating new RNGs and distributions easy under the `RandN.Implementation`

namespace.