code: public Date getDateBetween(final Date minDate, final Date maxDate) {
      // this can break if seconds is an int
      long seconds = (maxDate.getTime() - minDate.getTime()) / 1000;
      seconds = (long) (random.nextDouble() * seconds);
      Date result = new Date();
      result.setTime(minDate.getTime() + (seconds * 1000));
      return result;
    }
docs: Returns a random date between two dates. This method will alter the time component of the dates
  
  @param minDate Minimum date that can be returned
  @param maxDate Maximum date that can be returned
  @return random date between these two dates.