Random · Dates
Random date generator.
Choose a start and end date and get a random date in between, both days included. Generate a batch, skip weekends, block repeats and sort the list.
Settings
Result
Choose a range and press Generate date.
How the random date generator works
Both dates are inclusive. The tool converts each date to a day number, picks a whole number between the two with equal probability, and converts it back. Because every calendar day in the range is one equally likely slot, 29 February appears at the same rate as any other day when the range includes it, and months of different lengths are never favoured or penalised.
Worked example. Start 2024-02-28, end 2024-03-01 has exactly three possible dates: 2024-02-28, 2024-02-29 (a leap day) and 2024-03-01, each with a one in three chance. Turn on Weekdays only and Saturdays and Sundays are removed before the draw, so the remaining weekdays are equally likely. The result panel shows how many dates were possible.
Details that can trip you up
- Time zones do not matter. Dates are calculated as calendar days in UTC, so your local daylight-saving changes cannot shift a result by a day.
- Valid dates only. Inputs such as 2023-02-29 or 2025-04-31 are rejected instead of being silently rolled forward.
- Range limits. Years 1000 to 9999, at most 500 years between start and end, and up to 1,000 dates per click.
- No repeats. With it on, you cannot ask for more dates than the range holds. A 10-day range gives at most 10 different dates.
What people use random dates for
Test data for databases and spreadsheets, choosing a day for a surprise, spot-check audit samples, picking a random birthday for a character or a quiz, scheduling a random review day within a month, or settling “which weekend” in a group chat. The ISO format (year-month-day) is easiest to paste into software; the long formats are easier to read aloud.
Randomness comes from the browser’s secure generator, crypto.getRandomValues(), mapped to the range by rejection sampling so no day is favoured.
Frequently asked questions
How do I generate a random date between two dates?
Enter the start and end dates and press Generate date. Both days are included, and each day in the range is equally likely.
Does it include leap days?
Yes. 29 February is a normal possible day whenever your range includes a leap year. For example, 2024-02-28 to 2024-03-01 has three possible dates, including 2024-02-29.
Can I skip weekends?
Yes. Turn on Weekdays only to draw from Monday to Friday. If your range contains only a weekend, the tool tells you there are no weekdays to pick from.
Can I get several different random dates?
Yes. Set How many and turn on "No repeats". You can ask for no more dates than the range contains.
Which date formats can I get?
ISO year-month-day (2026-10-18), a long form (October 18, 2026) and a long form with the weekday (Sunday, October 18, 2026).
What range of years does it support?
Years 1000 to 9999, with at most 500 years between the start and end dates.
Sources
Checked
Date arithmetic uses JavaScript Date.UTC day counts (MDN), so results do not depend on your time zone. The ISO year-month-day format follows the W3C profile of ISO 8601. Leap days, invalid dates, weekday filtering and range limits are unit-tested. Everything runs in your browser. Nothing you enter or generate is sent anywhere or stored.
Scope
A general-purpose random tool. It does not check holidays, business days or any calendar other than the standard calendar date. Use a dedicated calculator for working-day counts.