This gem implements random variate generation for several common statistical distributions. Each distribution is implemented in its own class, and different parameterizations are created as instances of the class using the constructor to specify the parameterization. All constructors use named parameters for clarity, so the order of parameters does not matter. All random variate classes provide an optional argument rng, with which the user can specify an enumerable U(0,1) generator to use as the core source of randomness. If rng is not specified, it defaults to Ruby's Kernel#rand.

Once a random variate class has been instantiated, values can either be generated on demand using the next method or by using the instance as a generator in any iterable context.