[][src]Crate rand

Utilities for random number generation

Rand provides utilities to generate random numbers, to convert them to useful types and distributions, and some randomness-related algorithms.

Quick Start

To get you started quickly, the easiest and highest-level way to get a random value is to use [random()]; alternatively you can use [thread_rng()]. The [Rng] trait provides a useful API on all RNGs, while the [distributions] and [seq] modules provide further functionality on top of RNGs.

use rand::prelude::*;

if rand::random() { // generates a boolean
    // Try printing a random unicode code point (probably a bad idea)!
    println!("char: {}", rand::random::<char>());
}

let mut rng = rand::thread_rng();
let y: f64 = rng.gen(); // generates a float between 0 and 1

let mut nums: Vec<i32> = (1..100).collect();
nums.shuffle(&mut rng);

The Book

For the user guide and futher documentation, please read The Rust Rand Book.

Modules

distributions

Generating random samples from probability distributions.

prelude

Convenience re-export of common members

prngDeprecated

Pseudo-random number generators.

rngs

Random number generators and adapters for common usage:

seq

Functions for randomly accessing and sampling sequences.

Structs

Error

Error type of random number generators

Enums

ErrorKind

Error kind which can be matched over.

Traits

AsByteSliceMut

Trait for casting types to byte slices

CryptoRng

A marker trait used to indicate that an [RngCore] or BlockRngCore implementation is supposed to be cryptographically secure.

FromEntropy

A convenience extension to [SeedableRng] allowing construction from fresh entropy. This trait is automatically implemented for any PRNG implementing [SeedableRng] and is not intended to be implemented by users.

Rng

An automatically-implemented extension trait on [RngCore] providing high-level generic methods for sampling values and other convenience methods.

RngCore

The core of a random number generator.

SeedableRng

A random number generator that can be explicitly seeded.

Functions

random

Generates a random value using the thread-local random number generator.

thread_rng

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() equivelent.