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

// The prelude import enables methods we use below, specifically
// Rng::random, Rng::sample, SliceRandom::shuffle and IndexedRandom::choose.
use rand::prelude::*;

// Get an RNG:
let mut rng = rand::rng();

// Try printing a random unicode code point (probably a bad idea)!
println!("char: '{}'", rng.random::<char>());
// Try printing a random alphanumeric value instead!
println!("alpha: '{}'", rng.sample(rand::distr::Alphanumeric) as char);

// Generate and shuffle a sequence:
let mut nums: Vec<i32> = (1..100).collect();
nums.shuffle(&mut rng);
// And take a random pick (yes, we didn't need to shuffle first!):
let _ = nums.choose(&mut rng);

ยงThe Book

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

Re-exportsยง

pub use rand_core;

Modulesยง

distr
Generating random samples from probability distributions
prelude
Convenience re-export of common members
rng ๐Ÿ”’
Rng trait
rngs
Random number generators and adapters
seq
Sequence-related functionality

Macrosยง

debug ๐Ÿ”’
error ๐Ÿ”’
info ๐Ÿ”’
trace ๐Ÿ”’
warn ๐Ÿ”’

Traitsยง

CryptoRng
A marker trait over RngCore for securely unpredictable RNGs
Fill
Types which may be filled with random data
Rng
User-level interface for RNGs
RngCore
Implementation-level interface for RNGs
SeedableRng
A random number generator that can be explicitly seeded.
TryCryptoRng
A marker trait over TryRngCore for securely unpredictable RNGs
TryRngCore
A potentially fallible variant of RngCore

Functionsยง

fill
Fill any type implementing Fill with random data
random
Generate a random value using the thread-local random number generator.
random_bool
Return a bool with a probability p of being true.
random_iter
Return an iterator over random() variates
random_range
Generate a random value in the given range using the thread-local random number generator.
random_ratio
Return a bool with a probability of numerator/denominator of being true.
rng
Access a fast, pre-initialized generator
thread_rngDeprecated
Access the thread-local generator