🔒 100% private — runs in your browser, nothing is uploaded

Random Date Generator

Generate random dates between two dates, in the past by age, or in the future — with weekday, age and four output formats.

Most date tools on this site answer a question about a date you already have — how many days between two dates, what day of the week a date falls on. This one works the other way round: it gives you dates you did not have. There are three modes, because “a random date” means different things in different jobs. Between two dates draws evenly from a range you set. Past date draws a birth date for someone of a chosen age — which is exactly what people searching for a random birthday generator want — and shows the exact age that date gives today. Future date draws a day within a number of days from now, for deadlines, draws and “sometime in the next month, picked fairly” decisions.

Draw dates at random — between two dates, in the past by age (random birthdays, with the exact age shown), or in the future. Weekends can be skipped.

    Birthday-mode dates are fictional test data — not real people’s dates, and never for identity documents. Need the gap between two real dates instead? That is a different tool: a date-difference calculator works from dates you supply, while this page invents the dates.

    ⚠️ Fictional data only: dates from the past / birthday mode are invented test data. They are not real people’s birth dates, and a generated date must never be presented as anyone’s actual date of birth or used on identity documents, account recovery forms or anything else that asks for a real person’s details. If a form needs a real date, use the real one. Generated dates are fine for software testing, demos, classroom exercises, fiction and picking a date at random — they are not fine for impersonation or paperwork.

    Quick answers

    How do I generate a random date between two dates?

    Choose the Between two dates mode, set the start and end dates, pick how many dates you want (1, 5, 10 or 25) and an output format, then press Generate dates. Every calendar day in the range, endpoints included, has an equal chance of being drawn.

    Tick Exclude weekends to draw only Monday-to-Friday dates. If the start date is after the end date, the tool shows a plain message and draws nothing — swap the two dates and press again. Results show the weekday next to each date and can be copied as a list.

    Can this tool generate a random birthday?

    Yes — that is the Past date / birthday mode. Set a minimum and maximum age (18 and 80 by default) and the tool draws birth dates in the past that would make a person that age today, printing the exact age beside each date. It is the same job a random birthday generator does, built into this page.

    The dates are fictional test data. The age shown is exact for today’s date, taking account of whether the birthday has already happened this year. Never use a generated birthday as a real person’s date of birth — not on identity documents, verification forms or account recovery.

    Can I generate random dates with no weekends?

    Yes. Tick Exclude weekends in any mode and Saturdays and Sundays are skipped entirely, so every date returned falls Monday to Friday. If the range you set contains no weekday at all, the tool tells you instead of returning a weekend date.

    The same option suits the future mode for picking a random working day — a delivery slot, an inspection, a team day — within the next however-many days. Sampling stops safely after a capped number of attempts, so a tiny or all-weekend range can never hang the page.

    How to use

    1. Pick a mode: Between two dates, Past date / birthday (by age range), or Future date (within a number of days from today).
    2. Fill in that mode’s fields — the date range, the age range, or the days-ahead range — and tick Exclude weekends if Saturdays and Sundays are not allowed.
    3. Choose how many dates (1, 5, 10 or 25) and an output format: YYYY-MM-DD, DD/MM/YYYY, MM/DD/YYYY or long form.
    4. Press Generate dates. Each result shows its weekday, and birthday-mode results show the exact age as well.
    5. Use Copy to take the list, or press Generate again for a fresh set.

    About this tool

    The birthday mode deserves a plain explanation, since it is the mode people most often misuse. Pick an age range — say 25 to 40 — and the tool works out the window of birth dates that would make someone that age today, then draws from it. Next to each date it prints the exact age: a date drawn from the 25–40 window might read “age 33”, precise to whether this year’s birthday has passed yet. These are fictional dates for test data, demos and form-filling practice. They do not belong to real people, and they must never be used as if they did — not on identity documents, not for account recovery, not anywhere a real date of birth is required.

    Weekends can be excluded in any mode, which turns the generator into a working-day picker: draw a random inspection day in March, a random audit date this quarter, a random day for the office deep clean. The draw itself samples whole days evenly across the range, skipping Saturdays and Sundays when the box is ticked; if a range is all weekend — a single Saturday, say — the tool says so instead of looping forever or quietly returning a weekend anyway. Dates are handled as calendar days, not timestamps, so time zones never push a result across midnight into the wrong day.

    Output comes in four formats — ISO (2026-11-04), DD/MM/YYYY, MM/DD/YYYY and long form (“4 November 2026”) — because a date that is unambiguous in one country is a trap in another: 04/11/2026 is 4 November in London and April 11 in New York. Every result also names its weekday, so you can sanity-check a draw at a glance. Nothing is stored or sent anywhere; the dates exist only in this tab.

    The three modes and what each is for

    ModeYou setYou getTypical use
    Between two datesA start date and an end dateDates drawn evenly from that range, endpoints includedTest data, picking a date for an event, classroom draws, sampling a date from a period
    Past date / birthdayA minimum and maximum age (18–80 by default)Birth dates in the past, each with the exact age it gives todayFictional test accounts, demo data, form-filling practice — never real identity details
    Future dateA days-ahead range, e.g. 1 to 90 days from todayDates that many days into the futureFair deadlines, random check-ins, “sometime next month” decisions, scheduling draws

    Frequently asked questions

    Is a generated birthday a real person’s date of birth?

    No. Birthday-mode dates are fictional, invented by drawing from a date window. They are not drawn from any register of real people. Use them for software testing, demos, classroom work and fiction — never as anyone’s actual date of birth, and never on identity documents, verification questions or account recovery forms.

    How exact is the age shown in birthday mode?

    Exact for the day you generate it. The tool counts full years from the drawn birth date to today, subtracting a year if this year’s birthday has not happened yet — the standard age calculation. Generate the same birth date tomorrow and the age could differ by one only if the birthday falls in between.

    What happens if my start date is after my end date?

    You get a clear message saying the start date is after the end date, and no dates are drawn. The same applies to an age range whose minimum is above its maximum, or a days-ahead range entered backwards. Nothing crashes and no misleading result is shown — fix the range and generate again.

    Why offer four date formats?

    Because slashes are ambiguous. 04/11/2026 means 4 November in DD/MM/YYYY countries and April 11 in MM/DD/YYYY countries, and people have missed real appointments over exactly that. ISO format (2026-11-04) and long form (“4 November 2026”) cannot be misread, which is why both are offered alongside the two slash formats people often need for forms.

    Are all dates in my range equally likely?

    Yes. The generator picks a whole number of days at random across the range using cryptographic randomness with rejection sampling, so endpoints are exactly as likely as middle dates. With weekends excluded, every weekday in the range is equally likely instead.

    Is anything I generate stored?

    No. The dates are produced in your browser and never uploaded, saved or logged. “Today” is read from your own device clock, which is also what the age and future-date calculations use.

    📦 Embed this tool on your site

    <iframe src="https://verystep.com/embed/random-date/" title="Random Date Generator" width="100%" height="520" loading="lazy" style="border:0"></iframe>

    Free to use. The embed shows a small "Powered by Verystep" link.

    More free tools