Skip to main content
UtilitiesFree · no sign-up

Lorem Ipsum Generator

Placeholder paragraphs, sentences or words from the Cicero passage the text actually comes from.

Updated

3

Your placeholder text

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Laborum magna eligendi esse aute nostrud quod corrupti. Occaecati dignissimos amet amet cupidatat occaecat sunt magna lorem, eligendi ullamco quos aute dolor.

Aliqua deserunt provident sit sint dolor quos cupiditate culpa nulla, at pariatur maxime quod dignissimos. Eligendi amet eos excepteur optio odio animi dolores, cillum veniam occaecat officia consectetur. Quod ad sunt cupidatat nostrud reprehenderit non, ut corrupti commodo aliquip. Esse magna quas do distinctio nihil occaecati et similique excepturi, eos ducimus sint enim eiusmod ea. Aliqua eligendi exercitation dolor fuga nisi irure ex nam.

Anim quos sed commodo minim fuga ipsum optio at sit, fuga at irure sunt est laborum. Nobis nisi omnis laboris tempor deleniti magna laborum deserunt. Enim esse dignissimos repellendus duis est occaecat accusamus rerum, harum aute ut laborum mollitia. Commodo libero duis similique provident elit dolore sed molestias, dolore omnis sed sed similique. Nihil amet sunt et quod nobis est vero quod.

156 words

The word pool is the passage the placeholder actually comes from: Cicero’s De Finibus Bonorum et Malorum, written in 45 BC. That is why it reads as Latin-shaped prose rather than as random syllables, which is the whole point of using it to stand in for copy that is not written yet.

In short

Where does lorem ipsum come from?

From Cicero. The text is a scrambled passage of De Finibus Bonorum et Malorum, written in 45 BC, whose section 1.10.32 contains the phrase dolorem ipsum quia dolor sit amet. This generator draws on a 119-word pool of that vocabulary, and its default setting of 3 paragraphs returns 156 words across 13 sentences.

The Latin is deliberately meaningless as prose, which is the entire point: placeholder text that reads as sense pulls attention onto the words instead of the layout it was inserted to test.

How to use the lorem ipsum generator

Choose a unit, choose a count, decide whether to open with the canonical phrase, and the text appears immediately. The defaults give three paragraphs beginning Lorem ipsum dolor sit amet, consectetur adipiscing elit, which comes to 156 words and 1,059 characters across 13 sentences.

Sentences run between 8 and 16 words and paragraphs between 3 and 5 sentences, both varied within those bounds so the block has an uneven right edge and an uneven depth, exactly as real copy does. A comma is placed roughly two thirds of the way through any sentence longer than ten words, where a real clause would break.

156 words

The default output

3 paragraphs, 13 sentences

119

Words in the pool

115 of them distinct

45 BC

When the source was written

Cicero, De Finibus

Placeholder text has one job: to let you judge a layout without reading it. Real copy in a mockup is a trap, because everyone in the review starts editing the sentences instead of looking at the line length, the leading, the measure, and what happens when a paragraph runs two lines longer than the box allows.

Nonsense Latin removes that temptation while keeping the statistical shape of Western prose: word lengths in a familiar distribution, ascenders and descenders in familiar proportions, and a texture on the page that behaves like text rather than like a grey rectangle.

The generator is seeded and deterministic, which is an engineering requirement rather than a stylistic choice. This page renders on the server and then hydrates in the browser, and the two renders must produce identical markup, so the words cannot be left to an unseeded random call.

The same property makes the tool useful elsewhere: identical settings give identical text, so a test fixture or a screenshot comparison built on it stays stable between runs rather than changing underneath the thing it was meant to hold still.

The other generator in this pair

The strongest and weakest random number generators here sit a few files apart. That one draws from the browser cryptographic source, where unpredictability is the whole requirement.

Open the random number generator

Do

  • Pick the unit your layout is actually specified in.
  • Keep the canonical opener so a reviewer recognises the text as placeholder.
  • Look at the shape of the block rather than at the words.
  • Search the codebase for the word lorem before release.

Don't

  • Ship placeholder Latin into print, packaging, or a marketing email.
  • Sign off a layout that has never held any real copy.
  • Expect Latin word lengths to match the language you will publish in.
  • Ask for an exact word count while the unit is set to paragraphs.

What each setting actually produces, measured on the generated text rather than estimated. Paragraph and sentence lengths vary within fixed bounds, so the word counts are not simple multiples of the count you asked for, and the character totals include the spaces and punctuation.

SettingWordsSentencesCharacters
1 paragraph303215
2 paragraphs948663
3 paragraphs (the default here)156131,059
5 paragraphs289232,062
10 paragraphs511413,719
25 paragraphs1,125968,209
50 paragraphs2,31119716,654
200 paragraphs (the ceiling)9,53780369,198
1 sentence8156
3 sentences293205
5 sentences535367
10 sentences11710793
20 sentences231201,610
50 sentences584504,261
200 sentences (the ceiling)2,35220016,859
25 words251176
50 words501346
100 words1001686
200 words (the ceiling)20011,356
Computed July 2026 by running the generator on this page at its default seed of 1 with the canonical opener switched on. Because the generator is seeded, these figures reproduce exactly rather than approximately. Sentences are built at 8 to 16 words and paragraphs at 3 to 5 sentences, so a different seed shifts each row by a small amount while leaving the ranges unchanged.

Where the Latin comes from

The words come from a 119-word pool, 115 of them distinct, drawn from the standard lorem ipsum boilerplate and the extended passages that usually accompany it. That vocabulary descends from De Finibus Bonorum et Malorum, a work on ethics that Cicero wrote in 45 BC.

The connection was traced by Richard McClintock, a Latin scholar at Hampden-Sydney College, who followed the unusual word consectetur back to sections 1.10.32 and 1.10.33 of that text. The passage itself is Cicero setting out the argument that nobody desires pain for its own sake, which is why the fragment reads dolorem ipsum quia dolor sit amet.

Neque porro quisquam est, qui dolorem ipsum quia dolor sit amet: roughly, nobody loves pain for its own sake.
Cicero, De Finibus Bonorum et Malorum, 45 BC

The standard passage is a corrupted extract of that text, with words truncated, reordered, and letters altered until the Latin no longer parses. Typesetters had been using the scrambled version as specimen text since at least the sixteenth century, and it reached the modern industry through Letraset transfer sheets in the 1960s and desktop publishing software in the 1980s, which is how a Renaissance printing convenience became the default filler text of the web.

The formula, worked line by line

There is no arithmetic to speak of. What matters is the shape of the generated text and the fact that the same inputs always produce the same output, so the interesting part of the design is the random number generator, which is deliberately the weakest one in this repository.

Word selection runs on xorshift32, a three-line pseudo-random generator seeded with an integer that defaults to 1. It is small, fast, and entirely predictable, which for cryptography would be disqualifying and for placeholder prose is precisely what is wanted: predictable means the server and the browser agree.

state       = seed, default 1
next()      = xorshift32: state ^= state << 13, >>> 17, << 5
word        = pool[floor(next() x 119)]        pool = 119 words, 115 distinct
sentence    = 8 + floor(next() x 9) words, comma at 60 percent if longer than 10
paragraph   = 3 + floor(next() x 3) sentences
How the placeholder text is builtAt the defaults the generator returns 3 paragraphs holding 13 sentences and 156 words, with each sentence running 8 to 16 words.PARAGRAPHS ⊃ SENTENCES ⊃ WORDSparagraph 13paragraph 25paragraph 35sentence 18sentences run 8 to 16 wordsAT THE DEFAULTSparagraphs3sentences13characters1,059words156
Paragraphs hold sentences hold words: at the defaults that is 3 paragraphs, 13 sentences, and 156 words.
The defaults, measured
Setting
3 paragraphs, canonical opener, seed 1
First paragraph
3 sentences, 30 words
Second and third paragraphs
5 sentences each
Whole block
156 words, 13 sentences, 1,059 characters

Run it again with the same settings and you get exactly the same 156 words, because the seed has not changed. One sentence alone is the canonical opener: 8 words and 56 characters. Ask for 200 words and you get a single sentence of 1,356 characters, because word mode joins everything with one closing full stop rather than inventing sentence breaks.

The determinism is not decoration. A page like this one is rendered to HTML on the server and then hydrated by the browser, and the two renders must produce identical markup, which a seeded xorshift32 guarantees: same seed, same state transitions, same words.

The predictability that would disqualify this generator for cryptography is precisely the property wanted here, and it is why the strongest and weakest random number generators in this repository sit a few files apart, each correct for its job.

Questions people ask