This tool runs entirely in your browser. Nothing you paste is uploaded.
How you can check →Lorem Ipsum Generator
GeneratorsPlaceholder text with an exact count, a seed you can replay, and output already wrapped in HTML, Markdown or JSON — not a paragraph blob you wrap by hand.
The same seed always produces the same text on any machine — a placeholder generator is deterministic on purpose, the opposite of the password generator, which is deliberately unpredictable because unpredictability is the entire point of a password.
Sentence and paragraph shape
Where this text comes from
Every generator on this page draws from the same c. 1500s typesetter's garbled excerpt of Cicero's De Finibus Bonorum et Malorum, 1.10.32–33 (45 BC). The real passage, with the 1914 Loeb Classical Library English translation:
"Sed ut perspiciatis, unde omnis iste natus error sit voluptatem accusantium doloremque laudantium, totam rem aperiam eaque ipsa, quae ab illo inventore veritatis et quasi architecto beatae vitae dicta sunt, explicabo…"
Cicero, De Finibus Bonorum et Malorum, 1.10.32–33 (45 BC). Translation: H. Rackham, Loeb Classical Library, 1914 (public domain).
The generated word pool above is not grammatical Latin — words are picked at random from the passage's vocabulary, not composed as sentences a Latin speaker would recognise. That has always been true of "lorem ipsum" text everywhere it appears.
No network activity while you use this tool Show the numbers
- Requests to any other server
- 0
- Requests since you started typing
- —
- Same-origin requests
- 0
Counted live by your browser's own Performance Timeline — the same data the DevTools Network panel reads. It cannot see what a browser extension does, and it is not meant to replace checking for yourself: here is how, in thirty seconds .
Where lorem ipsum actually comes from
"Lorem ipsum" is not a made-up language — it is a corrupted fragment of a real Latin text, Cicero's De Finibus Bonorum et Malorum ("On the Ends of Good and Evil"), written in 45 BC. Somewhere in the 1500s, a typesetter scrambled a passage from Section 1.10.32–33 of that text into filler copy for a type specimen book, and the garbled result — missing words, Latin grammar broken by the cuts — is the exact scrambled pool every "lorem ipsum" generator on the web still draws from five centuries later, including this one. The tradition got a second life in the 1960s when Letraset used it on dry-transfer sheets for graphic designers, and again in the 1980s when early desktop publishing software (including early versions of Aldus PageMaker) shipped it as default placeholder text. It has been the default answer to "what goes here before the real copy is written" ever since.
Why designers use Latin-looking nonsense instead of English
The whole point of placeholder text is that a reviewer's eye should judge the layout — column width, line height, font size, how a heading sits above a paragraph — without getting pulled into reading and judging the words themselves. English filler text ("your content goes here") reads as a sentence with meaning, so a reviewer's attention snags on it. Latin that almost nobody reads fluently does the opposite: it has the visual rhythm and letter distribution of real prose (word lengths, punctuation frequency, capital letters at sentence starts) without offering anything to comprehend, so the eye stays on the layout. There's a real accessibility argument against ever shipping it to production, though — a screen reader will read "lorem ipsum dolor sit amet" out loud exactly as if it were real content, and a sighted user who does read Latin, or just reads carefully, will notice nonsense where real copy should be. Placeholder text belongs in a design mockup, never in a live page a real visitor might reach.
Exact counts, not approximate ones
Most lorem generators produce "about" the amount you asked for — five paragraphs come out as five paragraphs of whatever length sentences happened to land at, and a word-count request gets rounded to the nearest sentence boundary. That is a real gap when you need a specific number: testing how a UI handles exactly 500 words, or filling a database column with text that has to land under an exact byte limit. This generator verifies its own output after generating it and shows the achieved figure next to the requested one for every unit at once — words, characters, sentences, paragraphs and bytes — so "500 words" is visibly 500 words, and you can also see how many characters and bytes that same text turned out to be.
Why "bytes" is the unit a developer actually wants
Filling a VARCHAR(255) column or checking against an API payload limit is really
a question about bytes, not characters — and for anything outside plain ASCII, those two
numbers disagree. "café".length is 4 in JavaScript because
.length counts UTF-16 code units, but new
TextEncoder().encode("café").length is 5, because é takes two bytes in UTF-8. Classic
lorem text is pure ASCII, so the two numbers happen to coincide here, but this tool still
computes the byte count the honest way — from TextEncoder, never from
.length — so the number is correct by construction rather than correct by
coincidence. When a byte cap can't land exactly on a sentence boundary, the achieved-count
strip says which rule was applied: cut at the nearest sentence boundary within the limit, or
cut exactly at the byte limit when no earlier boundary fit.
Reproducibility, not unpredictability
A placeholder generator has the opposite job to a password generator. A password's entire
value comes from being unguessable, which is why
the password generator deliberately uses
cryptographically secure randomness that can never be replayed. Placeholder text needs the
exact reverse property: a designer approves a specific paragraph in a mockup, and that same
paragraph needs to come back after a page reload, after sharing a link with a teammate, or a
week later when the mockup is revisited. Math.random() output is lost the moment
the page reloads, so this generator uses a small, fast, deterministic PRNG (mulberry32)
seeded by a number you can see, edit, reroll or share — the same seed always produces the
same sequence of text, on any machine, forever. Using cryptographic randomness here would be
theatre: nothing about placeholder text is a security boundary, and claiming otherwise would
be the same kind of dishonesty as printing a privacy number nobody measured.
Output already wrapped, not a blob you wrap by hand
Most lorem generators hand back one block of text and leave you to wrap it in
<p> tags, Markdown bullets or a JSON array yourself. This one emits all
four directly: Plain (blank-line-separated paragraphs, or one paragraph per line in single-line
mode), HTML (<p> tags, or a <ul> of <li>
for the "list" unit), Markdown, and a JSON array of paragraph strings — the shape a mock API
response or a fixture file actually wants. Each format has its own copy button so the paste
lands ready to use.
Frequently asked questions
- Does this generator produce an exact word count?
- Yes. Ask for 500 words and you get exactly 500 — not "about 500". The achieved-count strip shows the requested and actual figure for every unit (words, characters, bytes, sentences, paragraphs) side by side, so you can see it matched rather than trust that it did.
- Why does the same seed produce the same text?
- Placeholder text needs reproducibility, not unpredictability — a designer who approves a layout with a specific paragraph needs that exact paragraph back after a reload, a re-share, or a teammate opening the same link. This tool uses a small deterministic PRNG (mulberry32), never Math.random or crypto randomness, so one seed always produces one sequence, on any machine, forever. That is the opposite bias from /tools/password-generator/, which is deliberately unpredictable because a password's whole job is not being guessable.
- What does the "bytes" unit actually measure?
- UTF-8 bytes from TextEncoder — the number that matters when you're filling a VARCHAR(255) or checking a payload against a size limit. It is not the same as JavaScript's .length (UTF-16 code units), which would quietly disagree the moment any non-ASCII character appeared. Classic lorem is plain ASCII, so the two happen to match here, but the byte cap is computed the honest way regardless.
- Is generated lorem ipsum real Latin?
- No, and this page says so rather than implying otherwise. The word pool is a scrambled fragment of Cicero's De Finibus Bonorum et Malorum (45 BC), corrupted by a 1500s typesetter into the nonsense arrangement every "lorem ipsum" generator on earth now draws words from. Sentences built from that pool are not grammatical Latin and were never meant to be read as Latin — they are meant to be ignored, which is the actual design goal of placeholder text.
- What output formats does it support?
- Plain text, HTML (wrapped in <p> tags, or a <ul> for the list unit), Markdown, and a JSON array of paragraph strings — each with its own copy button, so you can paste straight into markup instead of hand-wrapping a blob of text afterward.
- Does this tool send anything to a server?
- No. Generation runs entirely in your browser from the seed and settings you chose. Nothing is logged, stored or transmitted.
Explore more tools
Convert text between 19 cases — sentence, Title, camelCase, snake_case and more — with an acronym-safe tokenizer and a receipt for every change.
Turn a title into a URL-safe slug with a named transliteration convention, a change table for every substitution, and a loud error instead of a silent empty string.
Generate RFC 4122 v4 UUIDs, one at a time or in bulk.