A ver si te sirve esto:
Código PHP:
<?php
// Rango de números posibles
$numeros = range(1, 60);
//números a mostrar
$numeros_a_mostrar=10;
// Si hay más números a mostrar que números en el rango
// -> números a mostrar = todos
$numeros_a_mostrar=($numeros_a_mostrar>(count($numeros)-1)) ? (count($numeros)-1) : ($numeros_a_mostrar);
// mezclamos números
shuffle($numeros);
// definimos números que se han de mostrar
$deben_de_aparecer=array(24,25,1,5);
// definimos un array que luego mezclaremos para crear índices aleatorios dentro del rango a mostrar
$permanentes=range(0, $numeros_a_mostrar-1);
shuffle($permanentes);
$cont=-1;
// intercambiamos en el array $numeros las posiciones que contienen los valores que han de aparecer
// por las posiciones aleatorias que hemos creado $permanentes
foreach($deben_de_aparecer as $key=>$value)
{
$cont++;
$indice=array_search($value,$numeros);
$temp=$numeros[$permanentes[$cont]];
$numeros[$permanentes[$cont]]=$value;
$numeros[$indice]=$temp;
}
for ($i=0;$i<=$numeros_a_mostrar-1;$i++)
print ((in_array($numeros[$i],$deben_de_aparecer)) ? ("<b>".$numeros[$i]."</b>") : ($numeros[$i])) . (($i==($numeros_a_mostrar-1)) ? "" : ", ");
?>
En la línea:
Código PHP:
$deben_de_aparecer=array(24,25,1,5);
Debes de definir los numeros que deben de aparecer por necesidad, cuya cantidad, obviamente no debe de superar la cantidad de números a mostrar.
Pruébalo un poquillo con ejemplos porque tampoco es que lo haya testeado al 100%
Salu2 ;)