Generování náhodných 5ti čísel bez duplicity

Zdravím všechny!
Nevím zda s tímhle máte někdo zkušenosti, ale jak byste chtěli vygenerovat 5 náhodných čísel dejme tomu od 1 do 20 tak, aby se navzájem neshodovali?

Tzn., že pokud použiju pět proměnných, kde pomocí rand(1, 20) dostanu např.:

16 * 7 * 10 * 19 * 7

... jakým způsobem docílit toho, aby se neshodovali třeba ty dvě sedmičky?

Díky za jakoukoliv sebemenší radu!
$cisla=array();
$duplicita=false;

for($i=0;$i<5;$i++) {
$temp=rand(1,20);
for($j=0;$j<count($cisla);$j++) {
if($temp==$cisla[$j]) $duplicita=true;
}
$cisla[$i]=$temp;
if($duplicita) $i--;
$duplicita=false;
}


Nezkoušel jsem to. Snad je poznat, co jsem měl při psaní tohoto kódu za lubem.
<?php
function nahodneheslo ( )
{
// Pokud nesmí tvořit náhodné číslo nějaké znaky, smažte je (pokud zde jsou) z následujícího řádku.
$moznosti= array("1","2","3","4","5","6","7","8","9","0");
//Počet míst náhodného hesla
$mista="5";

$heslo="";

for ($i=0 ;$i<=$mista-1 ;$i++)
{
$nahoda=rand(0, count($moznosti)-1);
$heslo.=$moznosti[$nahoda];
}

echo "Náhodné heslo: $heslo";
}

nahodneheslo ( );
?>

skus uvidis...
A jo.. sem si spatne precetl otazku... Tak nic..
# Já bych použil jiný postup:

# vygenerujeme pole x čísel
for($i=1;$i<=20;$i++) $pole[$i] = $i;

# inicializujeme náhodu
srand((double) microtime() * 10000000);

# vytáhneme náhodných y prvků - pozor, funkce vrací klíče, ne hodnoty pole
$nahodna = array_rand($pole, 5);

# Toť vše
Du hast recht! Byl jsem zaslepen funkcí rand()!
Děkuji všem, převážně tobě, Nípale!