code: public static <T> T randomFrom(T[] array, Collection<T> excludes) {
      checkArgument(isNotEmpty(array), "Array cannot be empty");
      List<T> list = Arrays.asList(array);
      Iterable<T> copy = Lists.newArrayList(list);
      Iterables.removeAll(copy, excludes);
      checkArgument(!Iterables.isEmpty(copy), "Array only consists of the given excludes");
      return IterableUtils.randomFrom(list, excludes);
    }
docs: Returns a random element from the given array that's not in the values to exclude.
  
  @param array array to return random element from
  @param excludes values to exclude
  @param <T> the type of elements in the given array
  @return random element from the given array that's not in the values to exclude
  @throws IllegalArgumentException if the array is empty