code: public static Instant randomInstant(Instant startInclusive, Instant endExclusive) {
      checkArgument(startInclusive != null, "Start must be non-null");
      checkArgument(endExclusive != null, "End must be non-null");
      checkArgument(!startInclusive.isAfter(endExclusive), "End must be on or after start");
      checkArgument(
          startInclusive.equals(MIN_INSTANT) || startInclusive.isAfter(MIN_INSTANT),
          "Start must be on or after %s",
          MIN_INSTANT);
      checkArgument(
          endExclusive.equals(MAX_INSTANT) || endExclusive.isBefore(MAX_INSTANT),
          "End must be on or before %s",
          MAX_INSTANT);
      return Instant.ofEpochMilli(
          RandomUtils.nextLong(startInclusive.toEpochMilli(), endExclusive.toEpochMilli()));
    }
docs: Returns a random {@link Instant} within the specified range.
  
  @param startInclusive the earliest {@link Instant} that can be returned
  @param endExclusive the upper bound (not included)
  @return the random {@link Instant}
  @throws IllegalArgumentException if startInclusive or endExclusive are null or if endExclusive
  is earlier than startInclusive