Random date in a range
Set the two ends of your range and press generate. The tool picks a date uniformly at random from every day in that range, inclusive of both ends. Ask for more than one and you get a list, sorted chronologically unless you turn sorting off; No duplicates is selected by default; clear it to allow repeated dates.
When you need constraints
Most random date pickers stop there. This one can also skip weekends, national public holidays for the US, UK, Canada, Australia and Germany, and any custom dates you paste in — useful when the date has to be a day someone is actually at work. You can also open the home generator with the working-day settings already selected. This is a settings preset, not a separate tool.
Formats and export
Output as YYYY-MM-DD, MM/DD/YYYY, DD/MM/YYYY or a long form like March 3, 2026, optionally with the weekday. Copy the list, copy or download it as CSV, or copy JSON for code.
A random date without the day of the week
If you just want the date and not "Tuesday" in front of it, that is already what you get — Show weekday is off by default, so a result comes back as 2026-03-14 or March 14, 2026 with no day name attached. Tick the box when you want to see the weekday of each result; untick it again and the weekday disappears from every line, including the copied text, the CSV and the JSON.
This matters more than it sounds when the output is going somewhere else. A weekday prefix breaks a date column in a spreadsheet, confuses a parser expecting ISO 8601, and has to be stripped by hand out of a list of a hundred rows. Pick YYYY-MM-DD with the weekday off and the list pastes cleanly into Excel, a CSV import or a fixture file. The reverse is also true: for a printed schedule people will read, the day name earns its space, which is why it is a toggle rather than a fixed choice.
What people use a random date for
Choosing a draw date for a raffle or giveaway
Picking the closing date of a competition by hand invites the suspicion that it was chosen to suit someone. Generating it removes that argument, and the seed makes the choice auditable: publish the seed alongside the rules and anyone can reproduce the same date later and confirm nothing was changed after the fact. Set the range to the window the promotion is allowed to run in, ask for one date, and use Share settings to save a URL that reproduces the exact settings.
Building test and demo data
Realistic fixtures need dates that are spread out rather than all landing on the day the seed script ran. A hundred random signup dates across the last two years, or birthdays drawn from a forty-year window, make a demo database behave like a real one — pagination fills up, date filters return varied counts, and month-over-month charts have a shape. Generate the list, copy it as JSON or CSV, and paste it straight into a fixture file. Clear No duplicates when a column is allowed to repeat, such as order dates, and keep it selected when each row needs a distinct day.
Sampling a schedule for spot checks
Auditors, QA leads and site managers often need to inspect a handful of days out of a long period without being predictable about which ones. Ten dates drawn at random from a quarter is a defensible sample in a way that "the first Monday of each month" is not, because nobody can prepare for it. This is the case where the constraints matter most: tick the weekend days and enable public holidays so the sample only contains days when the site was actually operating, otherwise a third of your spot checks land on days with nothing to check.
Scheduling something deliberately arbitrary
Retrospective dates, team socials, fire drills and content publication slots sometimes just need a defensible way to break a tie. A random date in the allowed window ends the discussion faster than another round of scheduling email.
The Excel equivalent: RANDBETWEEN
The spreadsheet version of this page is RANDBETWEEN. Because Excel stores dates as serial numbers, you can feed it two dates directly: =RANDBETWEEN(DATE(2026,1,1), DATE(2026,12,31)). The result appears as a five-digit number until you format the cell as a date — select the cell, press Ctrl+1 and choose a date format. The same formula works unchanged in Google Sheets.
Three things about that formula surprise people. It is volatile, so the date changes every time the workbook recalculates — every edit, every sort, every file open. If the value needs to stay put, copy the cell and use Paste Special → Values to freeze it. It can also return the same date twice when you fill it down a column, which matters when each row is supposed to be a distinct day; the usual workaround is a helper column of random numbers plus RANK, or UNIQUE in newer versions. And it knows nothing about weekends or holidays, so a "random working day" needs it wrapped in WORKDAY and NETWORKDAYS against a holiday range you maintain yourself.
Microsoft 365 and Excel 2021 add a tidier option for a whole list at once: =RANDARRAY(10, 1, DATE(2026,1,1), DATE(2026,12,31), TRUE) spills ten whole-number dates down the column. It is still volatile and still ignores the calendar.
This page exists because those caveats are the whole job. Results hold still until you ask for new ones, No duplicates is selected unless you clear it, the holiday calendars for five countries are already filled in, and the list comes out ready to copy as text, CSV or JSON. If you specifically want the working-day version of the formula, the home generator with working-day exclusions enabled explains the WORKDAY equivalent in detail.
Getting the same dates again
Anything drawn at random is awkward to check later unless it can be reproduced. Type any text into the Seed field — a campaign name, a ticket number, a date — and the generator becomes deterministic: the same seed with the same range and the same options always returns the same list, on any machine and any browser. Leave the seed empty for a genuinely fresh draw each time. The Share settings button encodes every setting into the URL, which is the simplest way to send a colleague the exact list you are looking at rather than a screenshot of it.
Frequently asked questions
Are the start and end dates included?
Yes, both ends of the range can be returned.
How random is it?
Each eligible day has the same chance. Without a seed the browser's random number generator is used; with a seed, results are repeatable.
Can I exclude weekends or holidays here too?
Yes. Choose Working days only, or tick the weekdays to exclude and enable public holidays in this tool. Select the country and add any regional or company dates in the custom box.
What is the Excel formula for a random date between two dates?
Use =RANDBETWEEN(DATE(2026,1,1), DATE(2026,12,31)) and format the cell as a date. It recalculates on every change, can produce duplicates when filled down, and ignores weekends and public holidays.
Can I get a random date without the day of the week?
That is the default. Show weekday is off, so results come back as the date alone; tick it only if you want the day name included in the output, the CSV and the JSON.
Can I stop the same date appearing twice?
Yes. No duplicates is selected by default, so ten results contain ten different dates. Clear No duplicates if repeated dates are acceptable. Sort chronologically controls their display order.