use rand::Rng;
use rand::distr::{Distribution, Uniform};
pub fn get_sample_inds<R: Rng + ?Sized>(n: usize, rng: &mut R) -> Vec<usize> {
let dist = Uniform::new(0, n);
let mut inds: Vec<usize> = dist
.expect("could not create distribution")
.sample_iter(rng)
.take(n)
.collect();
inds.sort_unstable();
inds
}