Generate mass random date.

    :param size: int, number of
    :param start: date similar object, int / str / date / datetime
    :param end: date similar object, int / str / date / datetime, default today's date
    :param kwargs: args placeholder
    :return: list of datetime.date

def rnd_date_list_high_performance(size, start=date(1970, 1, 1), end=None, **kwargs):
    """
    Generate mass random date.

    :param size: int, number of
    :param start: date similar object, int / str / date / datetime
    :param end: date similar object, int / str / date / datetime, default today's date
    :param kwargs: args placeholder
    :return: list of datetime.date
    """
    if end is None:
        end = date.today()
    start_days = to_ordinal(parser.parse_datetime(start))
    end_days = to_ordinal(parser.parse_datetime(end))
    _assert_correct_start_end(start_days, end_days)
    if has_np:  # pragma: no cover
        return [
            from_ordinal(days)
            for days in np.random.randint(start_days, end_days, size)
        ]
    else:
        return [
            from_ordinal(random.randint(start_days, end_days))
            for _ in range(size)
        ]