Skip to content
TextArray
100% local

Random date generator

Generate random dates from any range, in the format you need.

Output

Random date generator

Set a start and an end date and get random dates drawn from between them, one per line. Both bounds count, so a range of a single day always returns that day. The default range spans 2000-01-01 to 2030-12-31, but anything works — a week for picking a meeting day, a decade for sample birthdays, or a century for historical fiction. Ask for one date or up to a thousand, ready to paste into a spreadsheet, a test fixture or a script.

The format menu covers the usual needs: ISO YYYY-MM-DD for spreadsheets and databases, DD.MM.YYYY and MM/DD/YYYY for European and US documents, a long written-out form that follows the page language, and full ISO 8601 with time for logs and APIs. "Include time" adds a random time of day to any of them; the ISO-with-time format switches it on by itself.

"Unique dates" guarantees that no calendar day appears twice — handy for schedules, rotas or sampling without replacement. If the range holds fewer days than you asked for, the tool says so calmly instead of spinning forever. "Sort ascending" puts the result into chronological order, which is what timelines and seed data usually want; leave it off when the draw order itself matters.

Randomness comes from crypto.getRandomValues with rejection sampling, so every day in the range is exactly as likely as any other — no drift towards either end. Everything runs in your browser: ranges and results are generated locally and never uploaded, so the dates you draw stay yours alone.

FAQ

Are my ranges or the generated dates sent anywhere?
No. Generation happens entirely in your browser and nothing leaves your device.
Are the start and end dates included?
Yes, both bounds are part of the pool. A range from 2020-01-01 to 2020-01-01 always returns that day.
How does "Include time" work?
Each date gets a random time of day, down to the second, drawn uniformly from 00:00:00 to 23:59:59. The ISO-with-time format always includes it.
Why did "Unique dates" return an error?
The range holds fewer calendar days than the count you asked for. Widen the range or lower the count.
How random are the dates?
They come from crypto.getRandomValues, the browser’s cryptographically secure source, with rejection sampling so no day in the range is favoured.