{"ast_node_type":"function","tokens":[{"end":80,"kind":"keyword","start":0,"text":"pub"}]}
pub fn shuffle<T>(slice: &mut [T], mut rand_index: impl FnMut(usize) -> usize) {
    let mut remaining = slice.len() - 1;