Skip to main content

Crate rand

Crate rand 

Source
Expand description

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 further documentation, please read The Rust Rand Book.

Modules§

distributions
Generating random samples from probability distributions
prelude
Convenience re-export of common members
rngs
Random number generators and adapters
seq
Sequence-related functionality

Structs§

Error
Error type of random number generators

Traits§

CryptoRng
A marker trait used to indicate that an RngCore or BlockRngCore implementation is supposed to be cryptographically secure.
Fill
Types which may be filled with random data
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.