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§
- Generating random samples from probability distributions
- Convenience re-export of common members
- Random number generators and adapters
- Sequence-related functionality
Structs§
- Error type of random number generators
Traits§
- A marker trait used to indicate that an
RngCore
orBlockRngCore
implementation is supposed to be cryptographically secure. - Types which may be filled with random data
- An automatically-implemented extension trait on
RngCore
providing high-level generic methods for sampling values and other convenience methods. - The core of a random number generator.
- A random number generator that can be explicitly seeded.