Random Date Generator

Pick one or more random calendar dates from a range you choose, with both end dates included.

Calculations happen locally. We do not send your values to our server.

Example

The whole of 2026 contains 365 days, so each day has a 0.27% chance on a single draw. Leap years are handled automatically: February 2028 has 29 possible dates.

Calculation method

The start and end dates become calendar-day indexes, and secure random integers select dates between them, including both endpoints. Dates are generated without a time of day, which avoids time-zone shifts that could move a result to the previous or next day.

Important notes

The generator does not skip weekends or public holidays. Generate extra dates and discard the unsuitable ones, or check results with the Day of the Week Calculator. It is a convenient local tool, not something for regulated lotteries with audit trails.

Uniform dates from an inclusive range

Choose a start date, an end date and how many dates you need. Both ends are possible results, and every calendar day between them is equally likely. The whole of 2026 contains 365 days, so each day has a 0.27% chance on a single draw. Dates are generated without a time of day, which avoids time-zone shifts that could move a result to the previous or next day. Leap years are handled automatically: February 2028 has 29 possible dates.

Unique dates and range limits

With “No duplicate dates” on, each date appears at most once in the result, so you cannot ask for more dates than the range contains. Requesting all 29 dates from February 1 to 29, 2028 returns every day exactly once in random order, while asking for 29 unique dates from February 2026, which has only 28 days, is rejected. Unique mode is useful for assigning different days to people, such as scheduling duty days or picking inspection dates.

Repeats when duplicates are allowed

If duplicates are allowed, dates are drawn independently and collisions arrive quickly. Drawing 10 dates from a year gives at least one repeated date about 11.69% of the time, and 23 dates reach 50.73%, the same birthday paradox seen with random numbers. The generator does not skip weekends or public holidays; generate extra dates and discard unsuitable ones, or check results with the Day of the Week Calculator. It is not intended for regulated lotteries.

Worked examples
InputResult
2026-01-01 → 2026-12-31 · 1 date365 possible dates · 0.27% each
2028-02-01 → 2028-02-29 · 29 uniqueall 29 dates once
2026-02-01 → 2026-02-28 · 29 uniquerejected (only 28 dates)
2026-01-01 → 2026-12-31 · 23 dates · duplicates allowedP(any repeat) 50.73%
2026-01-01 → 2026-12-31 · 10 dates · duplicates allowedP(any repeat) 11.69%

Frequently asked questions

How does unique mode work?

With “No duplicate dates” on, each date appears at most once, so you cannot ask for more dates than the range contains. Requesting all 29 dates from February 1 to 29, 2028 returns every day once in random order, while asking for 29 unique dates from February 2026, which has only 28 days, is rejected.

Why do repeats appear so quickly?

Because with duplicates allowed each date is drawn independently. Drawing 10 dates from a year gives at least one repeat about 11.69% of the time, and 23 dates reach 50.73% — the same birthday paradox that shows up with random numbers.

What is unique mode good for?

Assigning different days to different people: duty rosters, inspection dates, interview slots or a schedule where nobody should share a date. Turn duplicates back on when each draw is meant to be independent, such as sampling days for a survey.

Related tools