Si beh ma questo è un problema di matematica, non di php 
codice:
$percentuali=array(10.5,79.5,6,4);
//Calcolo limiti che è più comodo
$limiti= array();
$somma=0;
foreach($percentuali as $percentuale) {
$somma+=$percentuale
array_push($limiti, $somma);
}
$rand= mt_rand(1,10000)/100 ;
if($rand < $limiti[0]) {
// fai vedere A
} else if($rand<$limiti[1] ){
//fai vedere b
}
else if($rand<$limiti[2] ){
//fai vedere c
}
else if($rand<$limiti[3] ){
//fai vedere d
}
Se vuoi più ids basta che aggiungi la percentuale nell'array in alto e il relativo else if(){} in fondo. Dimmi se va che non l'ho testato.