Por que rand () não é realmente aleatório?

Eu queria colocar pontos aleatórios em uma imagem (estrelas no espaço para algum projeto paralelo divertido)

Eu tenho esse script simples.

<?php
$gd = imagecreatetruecolor(1000, 1000);
$white = imagecolorallocate($gd, 255, 255, 255);

for ($i = 0; $i < 100000; $i++) 
{
    $x = rand(1,1000);
    $y = rand(1,1000);

    imagesetpixel($gd, round($x),round($y), $white);
}

header('Content-Type: image/png');
imagepng($gd);
?>

Lembre-se de que isso é apenas para teste, é por isso que eu coloquei 100000 emfor loop para mostrar o padrão que notei emergindo. Temos 1 milhão de pixels para usar, mas X e Y ainda aleatórios criam esse padrão:

Portanto, está longe de ser aleatório. Eu sei que rand não é realmente aleatório, é por isso que não é bom para criptografia. Mas não encontro informações sobre como funciona e o que devo fazer para evitar padrões como esse.

questionAnswers(1)

yourAnswerToTheQuestion