Есть ли лучший способ сделать это в Rust?
let mut current_index = rng.gen_range(0, 5); while current_index == previous_index { current_index = rng.gen_range(0, 5); }
В зависимости от того, что вы хотите сделать, возможно SliceRandom::choose_multiple или SliceRandom::shuffle.
SliceRandom::choose_multiple
SliceRandom::shuffle
Не уверен насчет идиоматики, но это позволит избежать цикла:
let current_index = (previous_index + rng.gen_range(1, 5)) % 5;