extern crate rand; use self::rand::prelude::SliceRandom; pub fn copy_shuffle<T: Clone>(vec: &Vec<T>) -> Vec<T> { let mut rng = rand::thread_rng(); let mut vec = vec.clone(); vec.shuffle(&mut rng); vec }