Ошибка была в коде, вот конечная функция для любых диапазонов:
// law of large numbers
pub fn lln(min: u32, max: u32, attempts: u32) -> f32 {
let mut sum = 0;
let mut rng = thread_rng();
for _ in 0..attempts { sum += rng.gen_range(min..=max); }
sum as f32 / attempts as f32
}