pub fn split_vec<G: Gen, T>(
    source: &[T],
    gen: &mut G,
    number_of_splits: usize
) -> Vec<Vec<T>>where
    T: Clone,