Random Color Generator
Random colours from a seed you can keep, in a range you choose. Free, and runs entirely in your browser — nothing you enter is uploaded or stored.
About Random Colour Generator
Random colours, generated from a seed you can keep. The same seed always produces the same colours, so a palette you liked can be pasted into a ticket, shared with somebody else, or regenerated in six months — which is the difference between a novelty and a tool.
The randomness happens in HSL, not RGB, and that is the whole reason this looks better than three random bytes. Picking a random red, green and blue gives a uniform spread through the colour cube — and the cube's middle is mud. A naive generator produces a great deal of brown, then throws most of it away. Choosing a hue anywhere on the wheel and holding saturation and lightness inside a band gives colours that look chosen rather than computed.
That is also what makes the named ranges ranges rather than filters. Pastel is not "generate anything, keep the pale ones" — it is a band of high lightness and middling saturation that every colour is drawn from, so the whole set reads as a family and the variation between them is hue.
The contrast floor is measured against white, using the same ratio WCAG defines. Set it to 4.5 and every colour that comes back is readable as body text on a white page; set it to 1 and nothing is filtered. Some combinations are impossible — pastels are light by definition, so asking for pastels at 7:1 returns nothing, and the result says why rather than spinning.
Where it helps
- Seeded, so the same colours come back — a palette can be shared, recorded in a ticket, or regenerated later.
- Randomises in HSL rather than RGB, which is why the results look chosen instead of muddy.
- The named ranges are bands every colour is drawn from, so a set reads as a family rather than as survivors of a filter.
- Filters on real WCAG contrast against white, so a palette meant for text is readable before it reaches an audit.
- Spaces hues evenly on request, which is the difference between a palette and a handful of colours.
- Outputs hex, rgb(), hsl(), CSS custom properties, a Tailwind block or JSON — whichever you are pasting into.
- Says when a combination is impossible instead of quietly returning fewer colours than asked for.
- Runs entirely in your browser.
Limits
- The contrast floor is measured against white only. A palette for a dark interface needs checking the other way, which the Contrast Checker does.
- Evenly spaced hues are evenly spaced in HSL, which is not perceptually uniform — the greens occupy more of the wheel than the eye thinks they should.
- It knows nothing about colour blindness. Two hues that are far apart on the wheel can be indistinguishable to a deuteranope.
- The named ranges are conventions rather than definitions: somebody else's idea of muted will not be exactly this one.
- A seed is reproducible here, and is not a standard — the same word in another generator gives different colours.
Frequently asked questions
What is the seed for?
Getting the same colours back. Ordinary random colour generators are one-way: press the button, like what you see, press it again and it is gone. The seed is the input the colours are computed from, so writing it down is enough to reproduce them exactly, on any machine and at any time. Any word works — it is turned into a number.
Why not just pick random hex values?
Because a uniform spread through RGB is not a uniform spread of colours as anybody sees them. The corners of the colour cube are saturated primaries and the middle is grey-brown, so random bytes give you a lot of mud and a few neons. Randomising hue, saturation and lightness separately lets each be constrained to a range that looks deliberate.
Why did I get fewer colours than I asked for?
The contrast floor rejected the rest. It is measured against white, so a high floor excludes light colours entirely — pastels at 7:1 is an empty set, because a pastel that dark is not a pastel. The result says so and suggests lowering the floor or choosing a darker range.
Are these colours accessible?
Only in the one respect you asked about. A contrast floor of 4.5 means each colour is readable as body text on white, which is WCAG AA for normal text. It says nothing about the colours against each other, nothing about a dark background, and nothing about colour blindness — two hues that look distinct here can be identical to someone with deuteranopia.
Related tools
- Palette Generator — Harmonious colour schemes from a base colour
- Contrast Checker — WCAG contrast ratio for text and UI colours
- Color Converter — Convert between hex, RGB, HSL, HWB, LAB, OKLCH and more
- Gradient Generator — Build linear, radial and conic CSS gradients
- Image Colour Picker — Pick a colour out of a picture and read it back
- Box Shadow Generator — Design a shadow, stack its layers and copy the CSS
More Colors & Design tools
- Color Converter — Convert between hex, RGB, HSL, HWB, LAB, OKLCH and more
- Contrast Checker — WCAG contrast ratio for text and UI colours
- Image Colour Picker — Pick a colour out of a picture and read it back
- Gradient Generator — Build linear, radial and conic CSS gradients
- Palette Generator — Harmonious colour schemes from a base colour
- Box Shadow Generator — Design a shadow, stack its layers and copy the CSS
- Border Radius Generator — Round corners evenly, one by one, or into a blob
- CSS Animation Generator — Build a keyframe animation and watch it run
- Cubic Bezier Editor — Plot an easing curve and feel what it does
- Color Scale Generator — Turn one colour into an even 50–950 shade scale for CSS, Tailwind or SCSS
- Color Mixer — Blend two colours in OKLCH, OKLab or sRGB and get the CSS color-mix() for it
- Color Name Finder — The nearest CSS colour names to any colour, and a plain-words description
- Color Blindness Simulator — See a palette as people with each colour-vision deficiency do, and find the pairs that clash
- Image Palette Extractor — Pull the dominant colours out of a picture, with how much of it each covers
- Type Scale Generator — A modular type scale, fixed or fluid with clamp(), ready as CSS variables
- Text Shadow Generator — Soft, glow, neon, outline and retro text shadows with a live preview
- Glassmorphism Generator — Frosted-glass panels with backdrop-filter, a fallback and a live preview
- Clip Path Generator — Cut elements into triangles, hexagons, stars, arrows or your own polygon
- CSS Filter Generator — Build a CSS filter by eye, or find the filter that turns a black icon into any colour
- Design Tokens Converter — Turn W3C or Style Dictionary tokens into CSS variables, SCSS, Tailwind or JS
- Web Font Previewer — Set your own text in a font file before you ship it