Skip to content
Case Converter Online
en

Random Date Generator

Pick random dates between any two days. Skip weekends, add a time of day, and format the result the way your spreadsheet or app expects.

Options

Result

Recent results

  1. Your last 10 results appear here. They are kept only until you leave the page.

What the random date generator does

It picks calendar dates at random from a range you set. You can draw a single date, such as a surprise day for a team event, or hundreds of dates to fill a test database or a spreadsheet. Every day in the range has the same chance, and both the first and last day can be chosen.

The dates are made in your browser and never sent anywhere.

How to use it

  1. Pick the first allowed day in From and the last in To. The defaults cover all of 2026.
  2. Set How many dates you want, up to 1,000.
  3. Choose a Format:
    • 2026-10-04 (ISO 8601, best for sorting and databases)
    • 4 October 2026
    • Sunday, October 4, 2026
    • 10/04/2026 (US) with the month first
    • 04/10/2026 (UK, EU) with the day first
  4. Choose an Order: “As drawn”, “Earliest first” or “Latest first”.
  5. Under Options, turn on No repeats, Weekdays only or Include time as needed.
  6. Pick how to Separate results with, then press Generate dates.

A single date shows in large type under Result. A list appears in the box below it. Press Copy to copy the dates. Recent results keeps your last ten draws until you leave the page or press Clear.

Examples

Every example below is a real output from the code that runs this page.

Settings One run gave
All of 2026, 1 date, ISO 2026-05-30
All of 2026, 3 dates, Earliest first, long format 7 March 2026, 2 May 2026, 21 December 2026
All of 2026, 3 dates, Weekdays only, weekday format Thursday, July 30, 2026; Tuesday, December 1, 2026; Thursday, August 20, 2026
All of 2026, 2 dates, Include time, ISO 2026-01-16T05:45:16, 2026-11-06T22:01:43
October 2026, 2 dates, Include time, long format 5 October 2026 12:39:44, 31 October 2026 21:30:10
All of 2026, 2 dates, US format 08/12/2026, 02/01/2026
All of 2026, 2 dates, UK and EU format 16/10/2026, 11/06/2026
1990 to 2005, 3 dates, Earliest first 1992-05-02, 1999-11-06, 2003-01-03
October 2026, 4 dates, Weekdays only, No repeats, Earliest first Thursday, October 1, 2026; Wednesday, October 14, 2026; Tuesday, October 27, 2026; Thursday, October 29, 2026

Look at the US and UK rows. 08/12/2026 is 12 August in the US style, but 08/12/2026 written by someone in the UK means 8 December. If the date will be read by people or programs in different countries, the ISO format avoids that confusion.

How it works

The tool turns your two dates into day numbers, counting days since 1 January 1970. It then picks a random whole number between the two day numbers and turns it back into a date. Working in whole days means every date is equally likely, including 29 February in leap years, and short months do not get extra weight.

The random number comes from crypto.getRandomValues, the secure generator built into your browser. It is mapped to the range with rejection sampling: any draw that would make some days slightly more likely than others is thrown away and redrawn. That removes the small bias that a simple remainder calculation would cause.

Weekdays only first lists every Monday to Friday in the range, then picks from that list. Include time adds a random second of the day, from 00:00:00 to 23:59:59. No repeats makes sure the same day is never picked twice.

All dates are plain calendar dates with no time zone attached, so a date will not shift by a day when you paste it somewhere else.

Uses

  • Test data. Fill order dates, sign-up dates or due dates for a demo or a database seed.
  • Sampling. Pick random days to audit records, check a log or do a spot inspection.
  • Planning. Choose a surprise date for a team lunch or a random day for a fire drill.
  • Teaching. Give students random dates and ask what day of the week they fall on. Use the weekday format to check the answers.
  • Games and writing prompts. Pick a date in history and write about what might have happened that day.

Tips and limits

  • Holidays are not skipped. Weekdays only removes Saturdays and Sundays, not public holidays.
  • Too many unique dates. If No repeats is on and you ask for more dates than the range holds, the tool shows a message instead of a short list. With Weekdays only, it returns every weekday it can and says so.
  • Times are random, not real. The time of day is drawn evenly over 24 hours, so night times are as likely as office hours.
  • Spreadsheets. Excel and Sheets read ISO dates reliably. Other formats may be read with day and month swapped, depending on your system settings.
  • Need an ID with a time in it? A version 7 UUID from the UUID generator contains its own creation time.

Other ways to make random dates

Excel or Google Sheets. =RANDBETWEEN(DATE(2026,1,1), DATE(2026,12,31)) returns a random date serial number. Format the cell as a date to see it. For weekdays only, you can wrap it with WORKDAY, though that shifts weekend picks to the next working day, which gives Mondays a higher chance.

Python. Pick a random number of days with random.randint(0, (end - start).days) and add it to start as a timedelta.

SQL. In PostgreSQL, date '2026-01-01' + floor(random() * 365)::int gives a random day in 2026.

To pick a month rather than a full date, use the random month generator. For plain random numbers, use the random number generator.

Random Date Generator: questions and answers

How do I generate a random date between two dates?

Set the first day in From and the last day in To, then press Generate dates. Both days are included, and every day in between has the same chance of being picked.

Can I exclude weekends?

Yes. Turn on Weekdays only and the tool picks only Monday to Friday. It does not know about public holidays, so remove those yourself if they matter.

Can I get random dates with a time?

Turn on Include time. Each date gets a random time from 00:00:00 to 23:59:59 in 24-hour format. With the ISO format, one run gave 2026-01-16T05:45:16.

How do I make a list of random birthdays?

Set From and To to the range of birth dates you want, such as 1990-01-01 to 2005-12-31, set How many, and choose Earliest first under Order. One run of three gave 1992-05-02, 1999-11-06 and 2003-01-03.