1) Usar una función para el código q repites constantemente:
2) usar un array para almacenar esos numeros que generes .. para poder ver si ya los generó o no ... 
(supongo que los números generados no se pueden repetir entre si? .. si se pueden repetir quita el bucle while y las variables implicadas ..)  
 Código PHP:
    <?
function genera_numero($total){
  srand((double)microtime()*1000000);
  return rand(0, $total);
}
 
$total=10;
$numeros_generar=4;
$numeros_generados=array();
 
// Genera numeros.
for ($x=0; $x<$numeros_generar; $x++){
  $ok_numero=FALSE;
  while (!$ok_numero){
     $numero_aleatorio=genera_numero($total);
     if (!in_array($numero_aleatorio,$numeros_generados)){
        $numeros_generados[]=$numero_aleatorio;
        $ok_numero=TRUE;
      }
  }
 
}
 
// presenta los numeros generados.
foreach($numeros_generados as $numero){
    echo "Nº: ".$numero."<br>";
}
?>    
  Un saludo,