forse un metodo più "comodo" in modo da dare direttamente le percentuali

Codice PHP:
function rollDice(&$f) {
    
$random mt_rand(1,100);
    
$lastprob=0;
    foreach(
$f as $faccia=>$prob) {
        if(
$random<=$lastprob+$prob) return $faccia;
        
$lastprob+=$prob;
    }
    die(
"Errore con i parametri probabilità dell'array");
}

$facce = array(
    
'lato_1' => 50,   // 50%
    
'lato_2' => 30,  // 30%
    
'lato_3' => 20 // 20%
);
// usage: 
echo "E' uscito il lato " rollDice($facce);

// test
$result array_fill_keys(array_keys($facce),0);

for(
$i=0$i<100000$i++) {
    
$result[rollDice($facce)]++;
}

print_r($result);