Random Date Generator

Generate a random date between any two dates. Set a start and end date below and a new date is picked instantly — useful for test data, event planning, and date-related simulations.

Random Date

More ways to experience Recasely:

Rd

Pick a Date, Anywhere in Your Range

Set a start and end date and this tool picks a date somewhere in between, with every date in range equally likely to come up. Handy for generating test data, scheduling something when any date in a window works, or settling on a date nobody has to argue over.

A new date is generated as soon as the page loads and every time you change the start or end date. Click the refresh icon for another one without changing the range, or copy the result with one click.

How is the date actually picked?

The tool counts every day between your start and end date, including both endpoints, then uses the browser's Math.random() to pick one of those days with equal probability. A five-day range and a five-year range work the same way — every day within the window has exactly the same chance of being the one returned.

What can I use a random date for?

What date range can I use?

Any range your browser's date picker allows, in either direction — set the start after the end and the tool still works, treating whichever date is earlier as the actual start. Setting the same date for both fields always returns that one date, which is really just confirming there's nothing to randomize.

Does this account for leap years?

Yes. The day count between your two dates is calculated from real calendar dates, not approximated, so a range spanning February in a leap year correctly includes February 29 as a possible result — nothing is skipped or double-counted.

Related tools

Last reviewed: August 2026