Tool methodology

Calculation Methodology

The exact logic behind every tool on Word Unscrambler — what each one calculates, the rules it follows, and the limits to keep in mind. Everything runs locally in your browser.

Last reviewed: September 2026Maintained by Word Unscrambler editorial team

Foundations

Word list. All word-finding tools draw on a single built-in English dictionary of more than 370,000 words, sourced from the public-domain dwyl/english-words list, deduplicated and filtered to lowercase a-z tokens.

Browser-local processing. Every calculation runs as JavaScript in your browser. Your input is never uploaded, stored on, or read by our servers, so results are instant and private.

Limits. The dictionary is large but not an official game word list. For tournament Scrabble or Words With Friends, verify words against your game’s official dictionary. Reading-time and character counts are precise definitions, not subjective judgments.

Per-tool methodology

Word Unscrambler

Letter-pool subset matching

For each dictionary word, the tool checks whether every letter in the word is available in your input pool, consuming one pool letter per use. A letter can only be used as many times as it appears in your input. Words must be 2–15 letters long and exist in the built-in dictionary. Optional filters narrow matches by prefix, suffix, contained letters, a required letter, or exact length.

Open the Word Unscrambler

Anagram Solver

Sorted-signature comparison

Each word is lowercased, split into letters, sorted alphabetically, and rejoined into a canonical signature. Two words are anagrams if and only if their signatures match. The solver compares your input’s signature against every dictionary word and returns the matches, excluding the word you typed.

Open the Anagram Solver

Word Finder

Wildcard regular-expression match

Each pattern character becomes part of a regular expression: a literal letter matches itself, ? (or _) matches exactly one unknown letter, and * matches any run of zero or more letters. The pattern is anchored to the whole word and tested against every dictionary entry.

Open the Word Finder

Word Counter

Whitespace and punctuation splitting

Words = trimmed text split on whitespace. Characters with spaces = text.length; without spaces = text with all whitespace removed. Sentences = non-empty splits on [.!?]+. Paragraphs = non-empty splits on blank lines. Reading time = ⌈ words ÷ 200 ⌉ minutes, assuming an average adult silent reading pace of 200 words per minute.

Open the Word Counter

Character Counter

Code-unit and character-class counting

With spaces = text.length. Without spaces = text with all whitespace removed. Letters = count of [a-zA-Z]. Digits = count of [0-9]. Spaces = count of the space character. Lines = text split on newlines. Emoji and multi-byte symbols count toward the total by their code units.

Open the Character Counter

Random Word Generator

Uniform sampling without replacement

You choose a count (1–50). On each click the tool picks random dictionary words, skipping any already drawn in the current batch, until it collects the requested count or exhausts the dictionary. Each click produces a fresh, independent set.

Open the Random Word Generator

Case Converter

Unicode case mapping

UPPERCASE and lowercase map every letter directly. Title Case capitalises the first letter of each word while keeping short connective words lowercase unless they start or end the string. Sentence case lowercases everything then capitalises the first letter after each sentence-ending punctuation. Other styles flip or alternate case for stylistic effects. Non-letter characters are untouched.

Open the Case Converter

Text Cleaner

Whitespace normalisation

Each toggle applies one transformation: collapse runs of spaces to one, remove blank lines, trim leading/trailing spaces per line, convert tabs to two spaces, and strip invisible junk (zero-width spaces, BOM, bidi control marks). Toggles combine in a fixed order; the tool reports the character count removed.

Open the Text Cleaner

Remove Duplicate Lines

Set-based deduplication, first occurrence kept

The tool walks the text top to bottom and records each line in a Set. Before adding a line it normalises the comparison key — optionally lowercasing (Ignore case) and trimming (Ignore surrounding spaces). If the key is already present the line is skipped; otherwise the original line is kept, preserving first-occurrence order.

Open the Remove Duplicate Lines

Sort Lines

Locale-aware and numeric comparison

A → Z and Z → A sort lines with locale-aware, case-insensitive string comparison. 0 → 9 and 9 → 0 sort by the first number found on each line (lines with no number sort as infinitely large). Shortest first sorts by line length, breaking ties alphabetically. Only line order changes; line contents are unchanged.

Open the Sort Lines

Text Reverser

String, word, and line reversal

Reverse characters flips the whole string so the last code unit comes first. Reverse word order keeps each word intact but reverses the word sequence, preserving whitespace. Flip each word reverses characters inside every word while leaving word order unchanged. Reverse line order reverses the line sequence while keeping words inside each line in place.

Open the Text Reverser

Find & Replace

Escaped regex replacement

The Find text is escaped and turned into a regular expression. Whole words only wraps it in \b…\b so “cat” matches “cat” but not “category”. Match case toggles the case-insensitive flag. Every match is replaced globally and the tool reports the total number of replacements.

Open the Find & Replace

Text Diff

Longest common subsequence (LCS)

The tool computes a longest-common-subsequence of the two line lists. Lines in both versions in the same relative order are unchanged; lines only in the original are removed; lines only in the changed version are added. The result is a minimal, readable edit script.

Open the Text Diff

Slug Generator

Unicode normalisation + slugify

Each line is normalised with Unicode NFD decomposition so accented letters split into base letter plus combining marks; the marks are stripped, leaving plain A–Z. The text is lowercased, every run of non-alphanumeric characters becomes the chosen separator (hyphen or underscore), repeated separators collapse to one, and leading/trailing separators are trimmed.

Open the Slug Generator

Text to List

Split and rejoin

Each line is trimmed and empty lines are discarded to form the list items. Bulleted prefixes each item with “• ”, numbered with “1. ”, “2. ”…, and dashed with “— ”. Comma separated joins every item on one line with “, ”. HTML modes wrap items in <ul> or <ol> with indented <li> elements.

Open the Text to List