code: public static <T> T pickRandom (T[] values, T skip)
      {
          if (values == null || values.length < 2) {
              return null;
          }
          int index = getInt(values.length-1);
          for (int ii = 0; ii <= index; ii++) {
              if (values[ii] == skip) {
                  index++;
              }
          }
          return (index >= values.length) ? null : values[index];
      }
docs: Picks a random object from the supplied array of values, not including the specified skip
  object as a possible selection (equality with the skipped object is referential rather than
  via {@link Object#equals}). The element to be skipped must exist in the array exactly
  once. Even weight is given to all elements of the array except the skipped element.
  
  @return a randomly selected item or null if the array is null, of length zero or contains
  only the skip item.