Originariamente inviato da Ghneuma
Ma sono sicuro esista un algoritmo più efficiente
Certo. Ecco un esempio:

codice:
import java.util.*;

public class Prova
{
    public static void main (String[] args)
    {
        int[] numeri = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };
        int size = numeri.length;
        
        Random r = new Random ();

        while (size > 0)
        {
            int idx = r.nextInt (size);
            
            System.out.println ("Estratto numero: " + numeri[idx]);

            numeri[idx] = numeri[--size];
        }
    }
}