Prueba esto, es lo mismo q el anterior pero mas optimizado
Código PHP:
int numeros [][]=new int [4][4], ocupados=0, ocupados2=0, numero=1, x=0, y=0;
while (ocupados !=16)
{
numero = (int) (Math.random() * 8)-1; //numero aleatorio
while (ocupados2 !=2)
{
x = (int) (Math.random() * 4)-1; //posicion aleatroria "x"
y = (int) (Math.random() * 4)-1; //posicion aleatroria "y"
if(numeros[x][y]!=null ) //si esta vacia esa casilla la llenas
{
numeros[x][y]=numero;
ocupados2++; //aumentas el numero de casillas ocupadas, esto es para hacer las parejas
}
}
ocupados+=2; //aumentas el numero de casillas ocupadas global
ocupados2=0;
}