Loading...
Random Dad Joke
A fresh dad joke every time you visit. Runs entirely in your browser. No upload required.
How it works
Every joke is bundled right into the page, so each time you load it or tap "Another One" a random one is picked instantly using your browser's built-in cryptographic randomness. Tap "Show Punchline" when you are ready for the groan.
Nothing is sent anywhere. There is no API, no network request, and no server involved. Turn off Wi-Fi and it still works. No cookies, no tracking, no accounts.
Frequently asked questions
Will I see the same joke twice?
There are 50 jokes bundled in the page. Each pick avoids repeating the one currently on screen, so you never get the exact same joke back to back. Over a longer sitting you will start to see earlier ones come around again.
Why is the punchline hidden until I tap a button?
The setup shows first so you can guess the answer before the groan. Tap "Show Punchline" to reveal it, then "Another One" loads a fresh setup with its punchline hidden again.
Does it work without an internet connection?
Yes. Every joke lives in the page itself, so once it has loaded you can turn off Wi-Fi and keep tapping "Another One". No request is ever made after the page arrives.
How random is the joke picker?
It uses your browser's built-in cryptographic randomness (crypto.getRandomValues), not Math.random, so each joke is equally likely rather than following a predictable pattern.
More tools from Clean.tools
Use Clean.tools from your AI agent
Clean.tools also runs an MCP server — read-only utility tools your AI agent can call directly. No key, no signup: requests are processed in memory and request contents are never stored.
claude mcp add --scope user --transport http clean-tools https://mcp.clean.tools/mcpclaude mcp add --scope user --transport http clean-tools https://mcp.clean.tools/mcphttps://mcp.clean.tools/mcphttps://mcp.clean.tools/mcpEvery tool, the REST API, and setup for Cursor, Claude Desktop, VS Code & more →