code: public static <T> Iterator<T> getRandomIterator (Iterable<T> c)
      {
          return getRandomIterator(c.iterator());
      }
docs: Get an Iterator over the supplied Iterable that returns the elements in a completely random
  order. Normally Iterators return elements in an undefined order, but it is usually the same
  between different invocations as long as the underlying Iterable has not changed. This
  method mixes things up.