mct-rs 0.4.1

A fast, flexible, and simple implementation of Monte Carlo Tree Search (MCTS) algorithm in Rust
Documentation
use getrandom::getrandom;

pub fn genrand(min: usize, max: usize) -> usize {
    assert!(
        min < max,
        "min must be less than max. min={min} -> max={max}"
    );
    let range = max - min;
    let mut buf = [0u8; std::mem::size_of::<usize>()];

    loop {
        getrandom(&mut buf).expect("random failed");
        let value = usize::from_ne_bytes(buf);
        let max_usable = usize::MAX - usize::MAX % range;
        if value < max_usable {
            return min + (value % range);
        }
        // else: retry
    }
}