logo

Function rand::random

source · []
pub fn random<T>() -> T where
    Standard: Distribution<T>, 
Expand description

Generates a random value using the thread-local random number generator.

This is simply a shortcut for thread_rng().gen(). See thread_rng for documentation of the entropy source and Standard for documentation of distributions and type-specific generation.

Examples

let x = rand::random::<u8>();
println!("{}", x);

let y = rand::random::<f64>();
println!("{}", y);

if rand::random() { // generates a boolean
    println!("Better lucky than good!");
}

If you’re calling random() in a loop, caching the generator as in the following example can increase performance.

use rand::Rng;

let mut v = vec![1, 2, 3];

for x in v.iter_mut() {
    *x = rand::random()
}

// can be made faster by caching thread_rng

let mut rng = rand::thread_rng();

for x in v.iter_mut() {
    *x = rng.gen();
}