code: public static long randomAfter(TemporalField field, long after) {
      Long min = field.range().getMinimum();
      Long max = field.range().getMaximum();
      checkArgument(after < max, "After must be before %s", max);
      checkArgument(after >= min, "After must be on or after %s", min);
      return randomLong(after + 1, Math.min(max, Long.MAX_VALUE - 1) + 1);
    }
docs: Returns a random valid value for the given {@link TemporalField} between <code>
  after</code> and <code>TemporalField.range().max()</code>. For example, <code>
  randomAfter({@link ChronoField#HOUR_OF_DAY}, 12)</code> will return a random value between
  13-23.
  
  <p>Note: This will never return {@link Long#MAX_VALUE}. Even if it's a valid value for the
  given {@link TemporalField}.
  
  @param field the {@link TemporalField} to return a valid value for
  @param after the value that the returned value must be after
  @return the random value
  @throws IllegalArgumentException if after is before <code>
  TemporalField.range().min()
  </code> or if after is on or after <code>TemporalField.range().max()</code>