se podria hacer de muchisimas formas pero bueno yo optaria por arrays:
  Código PHP:
    <?php 
$numeros = array(); 
$contador=0;
 for($i = 10 ; $i<45 ; $i++){
  $numeros[$contador]=$i;
  $contador++;
}
// aki vemos los numeros completamente ordenados:
foreach ($numeros as $indice => $n){
//echo "$indice: $n <br>";
}
 
// aki vemos los numeros aleatoriamente ordenados
shuffle($numeros);
foreach ($numeros as $indice => $n){
    if($indice==0){
    echo "<br>";
    $c=$n;
    }else{
        if($indice%5==0){ // esta expresion significa $indice mod 5 => %
        echo " $n <br>";
        }else{
            echo " $n ";
        }
    }
    if($indice==count($numeros)-1){
        echo $c ;
    }
}
?>