code: public static <T> T randomFrom(Iterable<T> iterable) {
      checkArgument(!Iterables.isEmpty(iterable), "Iterable cannot be empty");
      int randomIndex = RANDOM.nextInt(Iterables.size(iterable));
      return Iterables.get(iterable, randomIndex);
    }
docs: Returns a random element from the given {@link Iterable}.
  
  @param iterable {@link Iterable} to return random element from
  @param <T> the type of elements in the given iterable
  @return random element from the given {@link Iterable}
  @throws IllegalArgumentException if the iterable is empty