pub fn choose_iter<I, E, T, R: Rand>(from: I, rand: &mut R) -> Option<T>where
    I: IntoIterator<Item = T, IntoIter = E>,
    E: ExactSizeIterator + Iterator<Item = T>,