RE:Generar numeros aleatorios
Hola:
Los números se pueden repetir, eres tú desde código el que debe rechazarlos si ya están repetidos.
Una forma para un caso como el tuyo, que sólo es de 0 a 15, puedes meter estos números en una LinkedList
LinkedList lsta = new LinkedList()
for (int i=0; i<=15; i++)
lista.add (new Integer(i));
Ahora sólo tienes que ir retirandolos aleatoriamente eligiendo la posicion de la lista. Por ejemplo, si tu numero aleatorio sale n, entonces
unAleatorio = lista.getElementAt(n);
lsita.removeElementAt(n);
El siguiente indice aleatorio que elijas debes estar entre 0 y 14, el siguiente entre o y 13 y así sucesivamente, por lo que a la hora de elegir un aleatorio debes elegir un indice entre 0 y lista.length().
Se bueno.