Moi je ferais ça :
Edit : ah ben c'est ta "méthode 2" on dirait
Code :
$dispo= range(1, 30); // tableau de toutes les valeurs possibles
shuffle($dispo); // hop, c'est tout mélangé
$tab = array_chunk($dispo,20); // je garde que les 20 premiers, c'est mes 20 tirages sans remise
Edit : ah ben c'est ta "méthode 2" on dirait