Есть ли метод в java, который генерирует рандомную дату?
Есть.
Instant.now(); - всегда новая дата. Еще ни разу не повторялась.
Можно еще так: 
public static void main(String[] args) {
        long leftLimit = 0L; // 01/01/1970, 00:00
        long rightLimit = Instant.now().toEpochMilli(); // now
        long generatedLong = leftLimit + (long) (Math.random() * (rightLimit - leftLimit));
        var randomDate = Instant.ofEpochMilli(generatedLong);

        DateTimeFormatter formatter =
                DateTimeFormatter.ofLocalizedDateTime( FormatStyle.SHORT )
                        .withZone( ZoneId.systemDefault() );

        System.out.println( formatter.format( randomDate ));
    }
Ответ на ваш вопрос легко ищется поисковиком. 
https://www.baeldung.com/java-random-dates
https://stackoverflow.com/questions/3985392/genera...