sai che ho fatto delle prove e array_pop risulta più veloce solo sotto la soglia di 40 elementi da estrarre?
dopo è più veloce la soluzione in_array
metto il codice che ho usato per il test
	Codice PHP:
	
<?php
$s = 1; // valore di partenza per random
$t = 300; // valore di fine per random
$n = 7; // numero di elementi da estrarre
$p = 0; // contatore ripetizioni per test
$p_max = 1000; // numero di ripetizioni per test
$faster_2 = 0; // variabile contatore per contare quando array_pop è più veloce
while($p < $p_max) {
    // inizio con in_array()
    $start1 = microtime();
    $range = array();
    for($a = 0; $a <= $n; $a++) {
        $num = rand($s, $t);
        if(!in_array($num, $range)) {
            $range[] = $num;
        } 
    }
    $elapsed1 = microtime() - $start1;
    
    // proseguo con array_pop()
    $start2 = microtime();
    $range1 = range($s, $t);
    $range1_out = array();
    shuffle($range1);
    for($a = 0; $a <= $n; $a++) {
        $range1_out[] = array_pop($range1);
    }
    $elapsed2 = microtime() - $start2;
    
    // delta di esecuzione dei due metodi
    $delta = $elapsed1 - $elapsed2;
    
    // se array_pop è più veloce, aggiungo al contatore
    if($delta < 0) {
        $faster_2++; 
    }
    $p++;
}
echo "array pop è più veloce nel " . $faster_2 / $p_max * 100 . "% dei casi\n";
?>