Our networkfavorit5The 5 worth buying.Top fives, comparisons and what reviewers say.See the top 5s
Fun · Randomizer

Random Date

Generate a random date between any two dates you choose. Get one or multiple random dates, with weekdays or any day. Perfect for games, historical research, scheduling, and classroom exercises.

Last updated

Any Date Range
Weekdays Only
Multiple Dates
Formatted Output
Random Date
Free · Instant · No signup

Set your range and click Generate.

Uses for Random Date Generation

Every day in your range, including both the start and the end date, has the same chance: 1 in 365 across a full common year such as 2026. Set the two dates and how many you need, limit it to weekdays or weekends if you like, and choose a format. Each result also shows its weekday, day of the year and distance from today.

Random date generators are used in many contexts: history teachers generate random historical dates for "what happened on this day" exercises; developers need random test data with valid dates; game masters generate random in-world dates; and scheduling tools use random dates for placeholder entries.

How the Date Is Chosen

The tool counts the whole calendar days from the start date to the end date, both included, and picks one of them at random with Math.random. From 1 January to 31 January that is 31 days, so each date has a 1 in 31 chance (3.23%). Dates are handled in UTC, so your time zone and daylight saving changes cannot push a result onto the day before or after.

With a weekday or weekend filter, a date that does not match is thrown out and a new one is drawn, which keeps every matching day equally likely. Public holidays are not removed. Math.random is fine for test data, games and prompts, but not for anything that must be unpredictable.

Days in Common Ranges

RangeDaysWeekdaysWeekend days
January 202631229
Oct 1 to Dec 31, 2026926626
Year 2026365261104
Year 2028 (leap year)366260106
1990 to 19993,6522,6101,042
2000 to 20093,6532,6091,044

Leap years are divisible by 4, except century years, which must be divisible by 400. So 2000 was a leap year and 1900 was not, which is why the 2000s have one more day than the 1990s. To count the days between any two dates, use the days between dates calculator.

Chance Two Random Dates Match

The generator allows repeats, and in a 365-day range they come sooner than you might think. This is the famous birthday problem.

Dates generatedChance at least two are the same
52.7%
1011.7%
2041.1%
2350.7%
3070.6%
4089.1%
5097.0%
7099.9%

If you need all dates to differ, generate a few extra and drop the repeats, or widen the range.

Method and sources. Day counts and weekday counts were computed in node by stepping through UTC calendar days. Birthday problem: 1 − (365 × 364 × ... × (365 − n + 1)) ÷ 365n. Leap year rule from the Gregorian calendar. Day of year counts 1 January as day 1. Dates are pseudorandom.

Frequently Asked Questions

The generator counts the whole days in your range, including the start and end date, and picks one of them with equal probability. Dates are built in UTC, so your time zone or a daylight saving change cannot move the result by a day.

Yes. Set Start Date to 1 Jan of the first year and End Date to 31 Dec of the last year. For the 1990s: 01/01/1990 to 12/31/1999.

The HTML date input supports dates from the year 0001. For historical research, set the start date accordingly. The generator handles dates before 1970 (Unix epoch) correctly.

Yes. Use the "Weekdays only (Mon-Fri)" filter. Note that public holidays are not excluded as they vary by country.

The current version allows repeats. For unique dates, generate more than needed and remove duplicates manually, or run multiple single-date generations.

ISO 8601 (YYYY-MM-DD) is the international standard and is unambiguous. US format (MM/DD/YYYY) and EU format (DD/MM/YYYY) can be confused with each other.

Yes. Use 1 Jan of the birth year as start and today as end. The result is a random date within a person's possible lifespan.

The ordinal day of the year: January 1 = Day 1, December 31 = Day 365 (or 366 in a leap year). Useful in astronomy, agriculture, and some business scheduling systems.

Test data generation needs realistic dates. Random dates help test edge cases: leap years, month boundaries, year boundaries, past and future dates. They also populate database fixtures and UI mockups.

Yes. Set Start Date to tomorrow and End Date to your target window end. Use weekdays-only if you need business day deadlines.

261. The year 2026 has 365 days and starts and ends on a Thursday, which leaves 104 Saturdays and Sundays. Public holidays are not subtracted, so the number of working days in your job will be lower.

It is the surprising fact that in a group of just 23 people there is a 50.7% chance that two share a birthday, ignoring leap days. With 50 people it rises to 97%. Each new person can match every earlier one, so the number of possible pairs grows fast. Generate 23 random dates across a year here and you will see a repeat about half the time.