Random Date Generator
Pick a random day between two dates for test data, a surprise date night, a quiz question or deciding when to schedule something.
Choose a range and press Pick a random date.
- Test data and fake birthdaysGenerate 100 unique birth dates between 1950 and 2008 and paste them into a spreadsheet or seed file as ISO dates.
- Surprise date or day outDraw a day in the next 30 days, put it in the calendar and keep the plan secret until then.
- History quizPick a random day in the 20th century and ask the class what happened that year.
- Fair schedulingDraw audit days, spot-check dates or a random team-lunch day without anyone choosing a favourite.
From range to dates in three steps
Set the range
Type a start and end date or tap a quick range. Both ends are included, and if you enter them backwards the tool simply flips them.
Add rules
Choose how many dates, keep only Monday to Friday, add a random time of day and decide whether a date may appear twice.
Use the result
One date shows as a calendar page. Several show as a list you can copy as ISO dates or written-out dates, or send to a wheel.
A date picker that gets the details right
Ranges people actually use
Most searches for a random date fall into a few patterns. These are good starting ranges; adjust the ends to fit your case.
| Purpose | Range | Settings |
|---|---|---|
| Fake birthdays for test users | 1950-01-01 to 2008-12-31 | 100 dates, no repeats, ISO copy |
| Date night or day trip | Next 30 days | 1 date, optionally weekdays only |
| Random workday for a check or audit | This quarter | Weekdays only, several dates, earliest first |
| History quiz question | 1900-01-01 to 1999-12-31 | 1 date, ask what happened that year |
| Event timestamps for a demo database | Last 12 months | Add a random time, random order |
| Daily writing or drawing prompt calendar | This year | 30 dates, earliest first |
How the random date is chosen
The generator turns both ends of your range into day numbers, counts how many days lie between them inclusive, and draws a whole number in that span with crypto.getRandomValues. Rejection sampling removes the small bias that a plain remainder would introduce, so the first and last day are exactly as likely as any day in the middle.
With Weekdays only switched on, it first counts the Mondays to Fridays in the range and draws one of those directly. That matters: rolling any day and re-rolling weekends would also be fair, but it slows down on short ranges, and simply shifting a Saturday to the next Monday would make Mondays three times as likely.
Random times are drawn as a second of the day from 00:00:00 to 23:59:59 and shown without a time zone, which is what you want for sample data. Nothing you enter leaves your browser.
Random dates as test data
Developers and analysts use random dates to fill sign-up dates, birthdays and order timestamps. A few habits make the data more realistic and the bugs easier to find.
- Copy as ISO. YYYY-MM-DD sorts correctly as text and imports cleanly into Excel, Google Sheets, SQL and JSON.
- Include edge cases on purpose: 29 February in a leap year, 31 December, and the days around a daylight-saving switch.
- For ages, set the range from the oldest to the youngest allowed birth year, so every generated user passes your age check, then add a few out-of-range dates by hand.
- Turn off No repeated dates when you need many records on the same day, for example to test grouping by date.
- Keep Earliest first for logs and timelines, and Random order when the rows should not already be sorted.
Need random numbers or names to go with the dates? The number generator and list randomizer pair well with this tool.
Ideas for a random day
- Surprise date: each partner draws a day in the next month and plans that evening.
- Birthday guess game: generate a date and everyone guesses which celebrity was born on it.
- On this day: pick a random date and look up what happened on it in history.
- Decluttering challenge: draw a weekday each week to tackle one drawer or cupboard.
- Book club: pick the meeting day fairly from the dates everyone is free.
- Classroom: draw the day for a pop quiz or a show-and-tell turn.
Frequently asked questions
How do I generate a random date between two dates?
Enter a From date and a To date, or tap a quick range, then press Pick a random date. Both the start and the end date can be picked, and every day in between has the same chance.
Can I get only weekdays and no weekends?
Yes. Tick Weekdays only and the result is always Monday to Friday. Weekends are removed before the draw, so every weekday stays equally likely. Public holidays are not removed, because they differ by country.
Can it generate a random date and time?
Yes. Tick Add a random time and each date gets a random time of day between 00:00 and 23:59. The ISO copy then reads like 2027-03-19 14:05.
How do I make a list of random birthdays?
Tap Adult birthdays, which covers 1950 to 2008, set How many to the number you need and keep No repeated dates on if each person should have a different birthday. Copy as ISO to paste into a spreadsheet.
Will the same date come up twice?
Not while No repeated dates is ticked. If you ask for more dates than the range contains, you get every date once and a note explaining why. Untick it to allow repeats.
Why does the date not depend on my time zone?
All calculations use whole calendar days in UTC, and the result is shown without converting it to your local clock. A date picked as 19 March is 19 March for everyone.
How many dates can I generate at once?
Up to 500 per click. The list can be copied in one go as ISO dates or written-out dates in your language.