Random Date Generator
Pick a random date between two dates — one date or a hundred, weekends included or skipped, ready to copy or download.
Between 1 and 100. 365 eligible days in this range.
Every drawn date is different.
Skip every Saturday and Sunday.
Result
Set a range and press Pick random dates.
How to use it
Choose the first and last day you are willing to land on. Both ends are included, so a range of 1 to 31 January can return the 1st and the 31st. Set how many dates you want, decide whether they have to be different from each other, and press the button. The result panel lists each date with its weekday, and the format selector switches between ISO, long and US styles without redrawing — the underlying dates do not change.
Exclude weekends removes Saturday and Sunday from the pool before anything is drawn, so the count you see next to the range is always the real number of days you could land on. If you ask for more unique dates than that number allows, the tool refuses the request and tells you how many are actually available instead of silently returning fewer.
What people use it for
Audits and spot checks. Sample random business days from a quarter to review transactions, shifts or logs without choosing the days yourself.
Testing and seed data. Generate a batch of plausible dates inside a known window for fixtures, demos and QA scenarios, then download them as CSV.
Planning and prompts. Pick a surprise date for a review, a draw, a date night or a study session — and if you need a number or a free-form choice instead, the number wheel and the decision wheel cover those.
How the dates are calculated
Each date is stored as a whole calendar day in UTC rather than a timestamp, so nothing can drift across midnight because of your timezone or a daylight-saving change. The eligible days in your range are counted arithmetically, a single unbiased index is drawn with crypto.getRandomValues, and that index is mapped straight back to a date — even a two-hundred-year range never builds a list in memory. Everything runs in this browser: no account, no upload, and your last settings stay in local storage.
Frequently asked questions
Set the start and end date, leave the count at one and press Pick random date. Both dates you enter are included in the range, so the first and last day can each be drawn.
Yes, up to 100 in one go. Leave No repeated dates on if every date must be different, or switch it off when repeats are acceptable, such as sampling with replacement.
Nothing is generated. The tool tells you exactly how many unique dates are available with your current range and exclusions and asks you to reduce the count or allow repeats, rather than quietly handing back a shorter list.
Yes. Turn on Exclude weekends and every Saturday and Sunday is removed from the pool before the draw, which is what you want for working days, deadlines and shift rotas.
ISO (2026-08-12), long (12 August 2026) and US (08/12/2026). Every result also shows its weekday, and the CSV download includes the position, the date and the weekday.
Yes. Dates are handled as whole calendar days in UTC rather than timestamps, so a result can never shift by a day because of your timezone or a daylight-saving change, and 29 February is drawn normally in leap years.
Every draw uses crypto.getRandomValues with rejection sampling, the same cryptographic random source the wheel uses, so each eligible day in your range is equally likely.