Any range · Weekdays only · Birthdays

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.

Quick ranges
How many

Choose a range and press Pick a random date.

Copy as
  • 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.
How it works

From range to dates in three steps

  1. 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.

  2. 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.

  3. 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.

Why people use it

A date picker that gets the details right

Every day equally likelyEach date in the range has exactly the same chance, using your browser's cryptographic random source with no modulo bias.
No time-zone surprisesDates are counted as whole calendar days in UTC, so daylight-saving changes never skip or double a day.
Weekdays-only that stays fairWeekends are removed before the draw, not rerolled afterwards, so every Monday to Friday has the same odds.
Up to 500 dates at onceEnough for a test fixture or a full year of prompts, with unique dates on by default.
Written the way you read datesResults are spelled out in your language with the weekday, plus an ISO 8601 date that every spreadsheet understands.
Spin the shortlistDraw five candidate days, then put them on a wheel so the group can pick the final one together.

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.

PurposeRangeSettings
Fake birthdays for test users1950-01-01 to 2008-12-31100 dates, no repeats, ISO copy
Date night or day tripNext 30 days1 date, optionally weekdays only
Random workday for a check or auditThis quarterWeekdays only, several dates, earliest first
History quiz question1900-01-01 to 1999-12-311 date, ask what happened that year
Event timestamps for a demo databaseLast 12 monthsAdd a random time, random order
Daily writing or drawing prompt calendarThis year30 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.
FAQ

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.