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
rngs
Random number generators and adapters
seq
Sequence-related functionality

Structs§

RngReaderstd
Adapter to support std::io::Read over a TryRng

Traits§

CryptoRng
A marker trait for securely unpredictable infallible RNGs
Fill
Support filling a slice with random data
Rng
Trait for infallible random number generators
RngExt
User-level interface for RNGs
SeedableRng
A random number generator that can be explicitly seeded.
TryCryptoRng
A marker trait over TryRng for securely unpredictable RNGs
TryRng
Base trait for random number generators and random data sources

Functions§

fillthread_rng
Fill any type implementing Fill with random data
make_rngsys_rng
Construct and seed an RNG
randomthread_rng
Generate a random value using the thread-local random number generator.
random_boolthread_rng
Return a bool with a probability p of being true.
random_iterthread_rng
Return an iterator over random() variates
random_rangethread_rng
Generate a random value in the given range using the thread-local random number generator.
random_ratiothread_rng
Return a bool with a probability of numerator/denominator of being true.
rngthread_rng
Access a fast, pre-initialized generator