code: public PlainDate random() {
  
          DateInterval interval = this.toCanonical();
  
          if (interval.isFinite() && !interval.isEmpty()) {
              long randomNum =
                  ThreadLocalRandom.current().nextLong(
                      interval.getStartAsCalendarDate().getDaysSinceEpochUTC(),
                      interval.getEndAsCalendarDate().getDaysSinceEpochUTC() + 1);
              return PlainDate.of(randomNum, EpochDays.UTC);
          } else {
              throw new IllegalStateException("Cannot get random date in an empty or infinite interval: " + this);
          }
  
      }
docs: /*[deutsch]
  Liefert ein Zufallsdatum innerhalb dieses Intervalls. </p>
  
  @return  random date within this interval
  @throws  IllegalStateException if this interval is infinite or empty or if there is no canonical form
  @see     #toCanonical()
  @since   5.0