One of 94 printable characters, each with ~1.06% probability. Letters, digits, and symbols.
ASCII defines 94 printable characters at codes 33 through 126. These characters power every programming language, every URL, every email address, and every command-line interface on Earth. The 95th "printable" character is the space (code 32), but it is invisible and excluded here. What remains are 26 uppercase letters, 26 lowercase letters, 10 digits, and 32 symbols. Together they form the complete visible toolkit of digital text.
Bob Bemer of IBM led the committee that finalized the American Standard Code for Information Interchange in 1963. The code assignments were far from arbitrary. Uppercase letters start at 65 (binary 1000001), lowercase at 97 (binary 1100001), and digits at 48 (binary 0110000). These placements enable elegant bit-manipulation tricks that programmers still use: toggling bit 5 switches letter case, and subtracting 48 converts a digit character to its numeric value. Sixty years of software rely on these careful binary positions.
Letters outnumber everything else at 52 of 94 (55.3%). Symbols claim 32 of 94 (34.0%). Digits, despite their foundational role in mathematics and computing, hold just 10 of 94 (10.6%). A truly random pick from all 94 characters is a letter more than half the time. The three-line convergence chart above demonstrates this asymmetry in real time: three independent proportion lines dance toward their expected targets with every pick.
ASCII was designed for English and English alone. Unicode extended this foundation to encompass every writing system on Earth: 149,813 characters across 161 scripts as of version 15.1. The first 128 Unicode codepoints are identical to ASCII, ensuring perfect backward compatibility. Every ASCII character is simultaneously a valid Unicode character. The ASCII subset remains the universal common ground of digital communication, the 94 glyphs that every device on the planet renders identically.
ASCII provides a concrete gateway to binary representation. Have students press Space repeatedly and observe the 7-bit binary code displayed for each character. Ask: what is the binary difference between A (1000001) and a (1100001)? The single-bit answer reveals the deliberate structure beneath what appears to be arbitrary numbering. For a collection exercise, challenge students to "light up" all 94 characters in the reference table below. The coupon collector mathematics predict how many picks this requires on average: approximately 94 × ln(94) + 94 × 0.5772 ≈ 481 picks. Actual results vary and provoke discussion about expected value versus individual experience.
Every character pick on this page happens entirely inside your browser using crypto.getRandomValues(), the Web Cryptography API. The server delivers this page. Your device selects the character. No pick data, no history, and no usage patterns travel to any server. Share the URL and your friend receives the same tool generating completely independent results from their own device.
94 printable characters. Each one you draw lights up below. Can you collect them all?
Send this link. They pick their own character. Compare codes and categories.
Daily Inspiration
Jury-selected work from the A' Design Award, presented fresh each morning.