Technique #1
<?php
$rand = array('0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'a', 'b', 'c', 'd', 'e', 'f');
$color = '#'.$rand[rand(0,15)].$rand[rand(0,15)].$rand[rand(0,15)].$rand[rand(0,15)].$rand[rand(0,15)].$rand[rand(0,15)];
?>
Then echo out the $color value anywhere you need it. For example:
<body style="background: <?php echo $color; ?>;">
Technique #2
<?php printf( "#%06X\n", mt_rand( 0, 0xFFFFFF )); ?>
There is also a JavaScript version.
Simpler version:
<php $color = sprintf(“#%06x”,rand(0,16777215)); ?>
<body style="background: <php echo $color; ?>;”>
Thanks, I like your better. Simple.
Interestingly enough, I had to do this exact task just a few days ago. Here’s what I came up with:
$color = str_pad(dechex(rand(0,16777215),6, "0", STR_PAD_LEFT);
In technique #1 you can tweak with the code to get Red, Green and Blue shades out of the code. The all you have to play with is the value upto 15.
Can I randomize hex colours from a preset list of colour hexes? If so then how?
yes you can with #1, but your preset list must have some common number such as #axbxcx or #aabbxx
for the solution #1, you can actually contorl the random color where #2 cannot
How about this one?
$rand = dechex(rand(0x000000, 0xFFFFFF));
echo('#' . $rand);
You can change rand in for mt_rand if you want, and you can put strtoupper() around the dechex to make the random number look nicer (although it’s not required). That would look like
$rand = strtoupper(dechex(rand(0x000000, 0xFFFFFF)));
It works perfectly and is way simpler than all the other methods described here :)
I used the following line and refreshed my page many times (probably at least 30) and noticed that for it being ‘random’ it always seems to end in 00… I don’t think I had a single occurrence where it hasn’t yet.
$rand = strtoupper(dechex(rand(0x000000, 0xFFFFFF)));
It can be nice to have control of the 3 component colours in case you don’t want a completely random colour from 000 to fff.
$random_color = sprintf("%02x%02x%02x", mt_rand(0x22, 0xaa), mt_rand(0x22, 0xaa), mt_rand(0x22, 0xaa));
Tweak each mt_rand to be the range of colours you want. Here I’ve chosen 22 to aa so the result is not too saturated.
The last snippet is very interesting :). Thanks.
Hi! Thanks.
I tried all these options on this game http://lincygame.plenicus.com. Each solution gives different levels.
Phil’s snippet is really good. :)
i made a random color generator which grabs three colors, determines whether each is relatively light or dark visually, then applies a lighter or darker version of the same hue to text. Source code is linked on the page. (It’s kind of an ongoing experiment, so it may change, or i may make future versions.)
RGB colors:
RGBA colors:
The random hex color code is used to represent colors numerically as three values in the [0,255] range: red, green, and blue. The random color code generator app will generate as many as 2,000 colorful color codes for you within a second. The randomizer makes it possible for you to generate beautiful color combinations by mixing different colors.