Random Date Generator

Pick random dates between two days, skip weekends, restrict to certain weekdays, exclude specific dates and add random times.

Runs in your browser No signup Nothing uploaded

Selections are generated locally in your browser using the Web Crypto API when available. The result is chosen before the animation starts, so how the animation looks can never change what is picked.

Loading the random date generator…

What is the Random Date Generator?

A date picker for the times you need a day rather than a name: scheduling spot checks, generating test data, choosing an audit sample, or picking a random day for a recurring activity.

The weekday filters do the work that makes this tool useful — restricting a sample to working days, or to Mondays and Wednesdays only, without having to filter the results afterwards.

How to use it

  1. Set the start and end dates.
  2. Choose how many dates you need and whether repeats are allowed.
  3. Untick any weekdays you want to exclude, or tick “skip weekends”.
  4. Add specific dates to exclude, such as public holidays.
  5. Choose a date format and result order, then press Generate.

How the random selection works

The tool builds the list of eligible days once — every day in the range that passes the weekday and exclusion filters — and then samples from that list. Unique draws use a partial Fisher-Yates shuffle; repeatable draws use independent rejection-sampled indices. When times are enabled, the hour and minute are drawn separately from the date, so the time is not correlated with the day.

The full algorithm — including the rejection-sampling step and the wheel stop-angle calculation — is written out on the methodology page.

Practical examples

  • Choosing 12 random working days in a quarter for spot checks.
  • Generating random appointment dates for test data.
  • Picking a random weekday for a recurring team activity.
  • Selecting an audit sample of transaction dates across a year.
  • Choosing random dates for a classroom “this day in history” activity.

Available options

  • Any range up to about a century.
  • Weekday filters and a skip-weekends shortcut.
  • Exclusion list for specific dates.
  • Unique or repeatable dates, up to 1,000 per draw.
  • Four date formats, optional random times, and result sorting.
  • Copy and CSV export with ISO timestamps.

Privacy

No personal data is involved in generating dates. Everything you type stays in this browser tab. There is no account, no upload step and no server-side copy of your list: the draw runs in JavaScript on your own device. Nothing is written to browser storage unless you explicitly save a list or tick the option to keep your draw history, and both can be cleared at any time from the privacy page.

Full details are in the privacy policy, which also has a button that deletes everything this site has stored in your browser.

Fairness and limitations

Every eligible day has an equal chance, which is not the same as every calendar day — filtering out weekends genuinely changes the distribution, as it should. One thing to be aware of: dates are handled in UTC to avoid daylight-saving edge cases shifting a date by one day, so a generated time is a UTC time.

Frequently asked questions

Why is my start date rejected?

Because it is later than the end date. Swap them and the draw will run.

How do I exclude public holidays?

List them in the exclusion field as YYYY-MM-DD values separated by commas.

Are the times in my time zone?

Dates and times are generated and displayed in UTC, which avoids a daylight-saving shift moving a result to the wrong day.

Can I get only Mondays?

Yes. Untick every weekday except Monday in “Include these weekdays”.