Editly

Published: 2026-06-21

How to Generate Lorem Ipsum Online (With Options)

Generate lorem ipsum, hipster, or bacon placeholder text online — pick words, sentences, or paragraphs, set an exact count, and copy. Try the free tool.

Lorem ipsum generator concept showing a layout filled with grey placeholder text bars and three corpus tabs: Lorem, Hipster, Bacon

The fastest way to generate placeholder text is to skip the generate button entirely. Open our Lorem Ipsum Generator — it runs entirely in your browser with zero network calls, so it works offline and nothing is produced on a server — pick a corpus, choose words/sentences/paragraphs, type how many you need, and the output updates as you type. Copy or download .txt. Done.

That's the whole job. But the tool has three flavors of filler, an exact-count mode, and an HTML output toggle that most designers and devs never notice they wanted. Here's how to use each — plus the one thing nearly every other lorem generator gets quietly wrong under the hood.

Pick Your Flavor: Lorem, Hipster, or Bacon

All three produce the same thing — grammatically-shaped nonsense that fills space without demanding to be read. They differ only in the word list driving them.

CorpusVibeSample wordsBest for
LoremClassic, invisiblelorem, ipsum, dolor, consecteturClient mockups where text should vanish into the layout
HipsterPlayful, on-brandartisan, kombucha, fixie, cold-pressedLifestyle, food, or startup sites that need personality
BaconObviously fakepork belly, ribeye, pancetta, brisketDrafts where a stakeholder must never mistake filler for final copy

The Bacon case is the underrated one. Classic Lorem is so familiar that a hurried client might gloss over it, but nobody approves a homepage that says "pork belly tenderloin." It's placeholder text with a built-in tripwire. Pick the corpus from the first dropdown; the output regenerates the instant you switch.

Words, Sentences, or Paragraphs — Hit an Exact Amount

The unit selector is where the precision lives. Each unit answers a different layout question.

UnitWhat you getRange per item
WordsAn exact word count, capped with a period1–500 words total
SentencesComplete sentences with varied punctuation5–15 words each
ParagraphsFull blocks separated by blank lines3–7 sentences each (~50 words)

So a paragraph runs roughly 25 to 100 words and averages about 50. Three paragraphs gives you ~150 words — enough to pressure-test a card or a blog-preview component without overflowing it.

Use Words mode when you have a real target to match. Building a layout that has to hold a 500-word essay? Generate exactly 500 words, drop them in, and you'll see immediately whether your line-height and column width survive that volume. To verify the generated block actually hits the count — and to check characters and reading time at the same time — paste it into the Word Counter. Both tools agree because both count the same way. If you're sizing a page rather than a field, our words-per-page guide maps word counts to physical pages across spacing and font settings, so you know what 500 words of filler will look like once it's typeset.

There's also a classic opener toggle. Leave it on and the output leads with the canonical line your eye expects — "Lorem ipsum dolor sit amet, consectetur adipiscing elit." — then fills the rest with randomized text. Turn it off when you want a fully random sample, for instance when you're generating several blocks and don't want them all starting identically.

Why "Lorem Ipsum" Isn't Just Gibberish

Here's the bit that makes for good trivia at a design review. The classic text isn't invented nonsense — it's mangled Cicero.

The source is De finibus bonorum et malorum ("On the Ends of Good and Evil"), a treatise on ethics Cicero wrote in 45 BC. The recognizable fragment comes from a passage that begins "Neque porro quisquam est qui dolorem ipsum quia dolor sit amet..." — roughly, "nor is there anyone who loves pain itself because it is pain." A typesetter in the 1500s scrambled that passage into unreadable filler to demonstrate a typeface, and it stuck for five centuries.

That history explains why it works. The words carry real Latin shape — believable word lengths, vowel-consonant rhythm, sentence cadence — but zero meaning. Your eye reads it as "text," your brain doesn't try to parse it. That's the entire trick.

Designers have a name for using nonsense on purpose: greeking. The point is to stop stakeholders from reviewing the copy when you need them reviewing the design. Fill a mockup with real English and the feedback turns into "I'd reword that headline." Fill it with lorem ipsum and the conversation stays on spacing, hierarchy, and balance — which is what the mockup is for. Placeholder text is a focus tool disguised as filler.

The Part Most Generators Get Wrong: Random ≠ Math.random()

Now the engineering. Picking a random word from a list sounds trivial — grab a list of 160 words, pick an index, done. The naïve version looks like this:

const word = words[Math.floor(Math.random() * words.length)]

It works, and it's also subtly broken. Math.random() is fine for picking a word, but the technique — mapping a random number onto a range with modulo or a float multiply — introduces modulo bias when the range doesn't divide evenly into the random source. Some words come up fractionally more often than others. For a toy generator nobody cares. But "good enough, slightly biased" is exactly the junior shortcut our guardrails ban across this whole site.

The Lorem Ipsum Generator uses crypto.getRandomValues() instead, with rejection sampling to kill the bias entirely:

function secureRandomInt(maxExclusive) {
  const range = 2 ** 32
  const limit = range - (range % maxExclusive)
  const buf = new Uint32Array(1)
  while (true) {
    crypto.getRandomValues(buf)
    if (buf[0] < limit) return buf[0] % maxExclusive   // discard the biased tail
  }
}

Side-by-side comparison: Math.random() mapped with modulo produces uneven word-pick frequencies (biased), while crypto.getRandomValues with rejection sampling discards the leftover tail of the 32-bit range to produce even, uniform frequencies

The picture is the whole argument. On the left, mapping a random number onto a 160-word list with modulo leaves a leftover "tail" that doesn't divide evenly — the words covered by that tail come up slightly more often, so the bars are uneven. On the right, rejection sampling throws away any value that lands in that tail and rolls again, so every bar is the same height. The limit line is what trims off the uneven top slice of the 32-bit range so every word in the list has a genuinely equal chance. It's the same standard you'd use for anything that has to be unbiased — and the same reason our other tools generate IDs with crypto.randomUUID() instead of Math.random().toString(36). If you want the full tour of why naïve string handling breaks, the JavaScript word-counting guide walks through the same class of bug on the counting side, where text.split(' ') quietly returns garbage on anything non-English.

Is the bias visible in your placeholder text? No. Does it cost anything to do it right? Also no. So we did it right.

HTML Output, Copy, and Download

Two finishing touches aimed at developers.

Switch the unit to Paragraphs and a second toggle unlocks: HTML output. Enable it and each paragraph comes wrapped in <p>...</p> tags, ready to paste straight into a template or a CMS field — no manual tag-wrapping. It's disabled for words and sentences mode, because wrapping a loose word list in paragraph tags makes no sense.

From there, Copy drops the text on your clipboard, and Download saves a lorem-ipsum.txt file for seeding fixtures, test data, or a content audit. If you generated text for a length-limited field — a meta description, a social caption, an SEO title — run it through the Character Limit Checker to confirm it fits the platform cap before you ship the mockup. It counts by grapheme, so multi-byte characters don't throw the number off.

That's the full toolkit: three corpora, three units, an exact count up to 500, a classic opener, HTML wrapping, copy, and download — all generated locally, instantly, every time you touch a control.

FAQ

How do I generate lorem ipsum text online? Open the generator, choose a corpus (Lorem, Hipster, or Bacon), pick a unit, and type the amount. The output updates instantly — there's no submit step. Copy it to your clipboard or download a .txt file. No account, no upload, and it regenerates the moment you change any option.

What's the difference between Lorem, Hipster, and Bacon ipsum? Same structured nonsense, different word lists. Lorem is the invisible classic for serious mockups. Hipster ('kombucha', 'fixie') adds personality for lifestyle and startup work. Bacon ('pork belly', 'ribeye') is deliberately ridiculous so a client never mistakes the placeholder for real copy.

Can I generate a specific number of words? Yes — set the unit to Words and enter a target up to 500. To confirm the block hits your number along with character count and reading time, paste it into the Word Counter, which tokenizes the same way the generator does, so the two always agree.

Is lorem ipsum real Latin? It's scrambled Latin. The text descends from Cicero's De finibus bonorum et malorum (45 BC), reordered into meaningless filler by a 1500s typesetter. Real Latin roots, no actual meaning — which is precisely why your eye reads it as text without trying to comprehend it.

Why use lorem ipsum instead of typing real text? Real text pulls reviewers into critiquing the copy instead of the design. Neutral placeholder — greeking — keeps feedback on layout, spacing, and hierarchy. It also gives you realistic text volume before the final content exists, so your layout is tested against real-world length early.

Does the generator send my settings to a server? No. Every word is produced locally by your browser's crypto API — no API call, no logging, nothing leaves the page. It works offline after the page loads and feels instant because there's no network round-trip.

Frequently Asked Questions

How do I generate lorem ipsum text online?

Open our free Lorem Ipsum Generator, choose a corpus (Lorem, Hipster, or Bacon), pick a unit (words, sentences, or paragraphs), type the amount you need, and the text updates instantly. Hit Copy to grab it or Download to save a .txt file. There's no sign-up and no generate button to hunt for — changing any option regenerates the output on the spot, fully in your browser.

What's the difference between Lorem, Hipster, and Bacon ipsum?

They're three different word lists that produce the same kind of structured nonsense. Lorem is the classic pseudo-Latin every designer recognizes — it disappears into a layout so nobody reads it. Hipster Ipsum swaps in words like 'kombucha', 'fixie', and 'artisan' for a playful, on-brand vibe. Bacon Ipsum is all cuts of meat — 'pork belly', 'ribeye', 'pancetta' — and it's genuinely useful when you need placeholder text that's obviously fake so a client never mistakes it for real copy.

Can I generate a specific number of words?

Yes. Switch the unit to Words and enter your target — say 500 — and you get exactly 500 words. The count field accepts 1 to 500 for words, sentences, or paragraphs. If you're filling a layout that needs to match a real document length, generate the words and paste them into our Word Counter to confirm the count, character total, and estimated reading time all line up.

Is lorem ipsum real Latin?

It's scrambled Latin, not readable Latin. The text traces back to Cicero's 'De finibus bonorum et malorum', written in 45 BC — a passage that opens 'Neque porro quisquam est qui dolorem ipsum...'. A 1500s typesetter chopped and reordered it into the meaningless filler we use today. So the words are real Latin roots, but the sentences mean nothing, which is exactly the point: your eye registers text without your brain trying to read it.

Why use lorem ipsum instead of just typing real text?

Because real text hijacks the review. Put readable English in a mockup and your client critiques the copy — 'change this headline', 'I don't like that sentence' — instead of judging the layout, spacing, and hierarchy you actually want feedback on. Designers call this greeking: neutral placeholder keeps everyone focused on the design. It also gives you realistic text volume before the real content exists, so the layout doesn't break the moment someone writes a long paragraph.

Does the generator send my settings to a server?

No. Every word is produced locally by your browser's JavaScript engine using the built-in crypto API — there's no API call, no logging, and nothing leaves the page. That means it works offline once the page is loaded, and it's instant because there's no network round-trip. Placeholder text isn't sensitive, but the no-server design is why generating 500 paragraphs feels immediate instead of laggy.

Try Our Free Word Counter

Instantly count words, check readability, and analyze your text.

Open Word Counter