What should you read next?

A random book picker with the filters you actually use — genre, length, era. 100+ titles, classics to contemporary, instant pick, shareable URL. End the to-be-read paralysis.

Cryptographically fair 100+ titles Shareable URL
Press pick

Pick a book

Set your filters below, then roll for a random title from the catalog.

How filters work

The three filters narrow the catalog before the random pick happens. Setting any to any skips it. Era is computed from publication year; length is computed from a representative page count.

Pool size for current filters:

About this generator

The to-read pile is a graveyard of good intentions. You bookmark articles, screenshot recommendations, accept gifts, browse Goodreads at midnight. Then you stand in front of the shelf for ten minutes and start the same novel you've started three times. This tool is a forcing function: pick a filter, hit the button, read what comes up.

The catalog is intentionally not 10,000 books. Big-data book recommenders nudge you toward the same forty bestsellers via collaborative filtering — useful, sort of, but predictable. Our list is around 100, hand-picked across genre, era and difficulty, deliberately mixing canon (Austen, Dostoyevsky) with modern staples (Le Guin, Whitehead) and a few non-fiction anchors. You'll get something you've heard of in a third of rolls and something you haven't in another third — exactly the ratio that breaks a rut.

The take: the right book is the one in your hand at 9pm, not the one your taste graph thinks you should want. Page count is the most underrated filter — a 240-page novel ends in a week and resets your reading habit; a 720-page brick stalls for a year. We default to no length filter so the pool stays wide, but most people who use this tool twice end up using it permanently.

What this isn't: a book club app or a reading tracker. We don't store what you've picked, log to anything, or compare you to your friends. If you want a curated weird shelf or a totally custom roll, the Choice Picker takes any list you paste in. For shorter creative input, try a random quote or a writing prompt. The job here is one click, one book, no spreadsheet.

What people actually use it for

Most of these end with someone closing fifteen tabs.

Book clubs

Group can't agree on the next pick? Vote on the filters first (era, length), let the picker make the actual call. Easier than another email chain.

Kids reading lists

Filter to classics or shorter literary fiction, pick five times, hand the list to the librarian. Better range than the algorithm in a school portal.

Breaking out of a genre rut

You've read every recent fantasy release. Set genre to non-fiction or biography, length under 400, hit pick. The discomfort is the point.

Gift ideas

Pick three books in your friend's likely range, look up which ones they haven't read, decide. Faster than scrolling Bookshop's bestseller list.

Summer reading

Filter modern + length any, pick once a week, build a stack. Beach-friendly works because the catalog isn't only literary.

Library browsing

You're at the library and don't know what to scan for. Pick on your phone before walking in — even if you don't get that book, the filters give you a section.

How it works

The picking

Each book has tags for genre, length bucket and era. Your filter selections build an eligibility array; we use crypto.getRandomValues with rejection sampling to map a 32-bit draw to an exact index in [0, N) with no modulo bias. Naïve random % N over-represents early indices when N doesn't divide evenly into 2³² — we discard out-of-range draws and re-roll. Every eligible book has the same probability.

The catalog

Around 100 titles inline in the page — works offline after first load, never makes a network call. Page counts are representative round numbers (formats and editions vary), and authors and years are from public bibliographies. No retailer or library links — those would rot or play favorites within a year.

State & sharing

Filters live in the URL query string (?genre=fantasy&length=long) via history.replaceState; a localStorage key holds your last 10 picks. Loading the URL anywhere recreates the same filtered state.

Drop the picker anywhere.

Book blog, library website, school site, classroom Notion — paste one line of HTML. Filters travel through the URL.

Embed docs →
<iframe src="https://randomgen.net/book/embed/"
  width="100%" height="500"
  loading="lazy"></iframe>

Common questions

How does the book picker decide what to recommend?

We filter the catalog by your genre, length and era selections, then pick a title using crypto.getRandomValues with rejection sampling. Every match has an equal chance — no popularity weighting, no Goodreads-style algorithm, no taste-tracking.

Why these books and not others?

Hand-curated for breadth: classics, literary fiction, genre titles people actually finish, a few non-fiction staples. Intentionally not a best-of list — best-of lists give you the same five Murakamis. We bias toward titles that work as recommendations to a friend.

Can I tell it which books I've already read?

Not yet. The recent strip below the card shows your last 10 picks so you can avoid immediate repeats. A read-list with sync is on the Pro roadmap. For now, re-roll if you've read what came up.

Why is the page count rounded?

Page counts vary by edition, format and language. We use a representative round number for filtering — close enough to bucket as short, medium or long, but don't quote it for an essay.

Where do I actually get the book?

We don't link to retailers or libraries on purpose. Try your local library first, then bookshop.org, then a used-book site. Linking would either rot or quietly favor one retailer over another — neither is great.

Can I add my own to-read list?

The catalog is fixed for now. To roll your own list — the 47 books on your nightstand — the Choice Picker takes any list you paste in and picks one with the same fair RNG.

Is the book picker free?

Free, no signup, no account. Settings save in your browser only. The whole catalog ships inside the page, so it works offline once you've loaded it.