<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 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)
        ]