Generating Random Colors on a Range
If you want to add some visual interest to your website, consider incorporating random colors. While using the Math.random() function to generate colors can be a quick and easy option, it may result in some less-than-appealing hues. An alternative approach is to create a set of random colors that all conform to a specific color profile. Here's a simple method for doing so.
Code
1function color(min, max, rng) {
2 let c = [min, max, Math.floor(Math.random() * (max - min)) + min].sort(() =>
3 Math.random() > 0.5 ? 1 : -1
4 );
5 return `rgb(${c[0]},${c[1]},${c[2]})`;
6}
How it works
The color
function takes in two parameters, min
and max
, which determine the range from which the randomly generated color will be selected. To generate a random color, an array c
is created with two of the values being the min
and max
numbers, and the third value being a random number within that range. This array is then used to create an RGB string using a template string. In this way, you can easily create a random color that fits within a specified range.
How to get the min
and max
Matching the min
and max
values to a specific color is straightforward. Simply use the lowest and highest values of the color's RGB values as the min
and max
values, respectively. This ensures that the randomly generated color will be within the same color range as the target color.