Ideally I would be able to do something like this:
use rand::{thread_rng, Rng};
let choices = [1, 2, 4, 8, 16, 32];
let weights = [0.1, 0.1, 0.1, 0.2, 0.5];
let mut rng = thread_rng();
println!("{:?}", rng.choose(&choices, &weights));
Would such feature be helpful for the others? Is there any chance rand crate developers would get to that or is it fine if I try to implement it myself and submit it to the crate?