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

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§

make_rng
Construct and seed an RNG