Is possible to generate random numbers in PHP, for example from 1 to 10, and let it be more likely to generate smaller numbers than higher numbers?
Sure. Just do more randomness:
//80% chance that it's going to be a number that's smaller or equal to 5
if (rand(0, 10) <= 8) {
$number = rand(0, 5);
} else {
$number = rand(6, 10);
}
Demo code:
<?php
$numbers = array();
for ($i = 0; $i < 1000; $i++) {
if (rand(0, 10) <= 8) {
$number = rand(0, 5);
} else {
$number = rand(6, 10);
}
$numbers[$number] = (isset($numbers[$number]) ? $numbers[$number] + 1 : 1);
}
print_r($numbers);
Output:
Array
(
[0] => 141
[1] => 147
[2] => 135
[3] => 137
[4] => 131
[5] => 148
[6] => 34
[7] => 27
[8] => 36
[9] => 33
[10] => 31
)