Shuffle an Array
Approach 1: Shuffle elements in an array
public static int[] RandomizeArray(int[] array){
        Random rgen = new Random();  // Random number generator
        for (int i=0; i<array.length; i++) {
            int randomPosition = rgen.nextInt(array.length);
            int temp = array[i];
            array[i] = array[randomPosition];
            array[randomPosition] = temp;
        }
        return array;
    }
You can also define a method whose input is a range of the array like below:
Input: range of an int array
Output: randomly shuffled array
For example, given a=1 and b=10, the method returns a shuffled array such as {2 5 6 7 9 8 3 1 10 4}.
public static int[] RandomizeArray(int a, int b){
        Random rgen = new Random();  // Random number generator
        int size = b-a+1;
        int[] array = new int[size];
        for(int i=0; i< size; i++){
            array[i] = a+i;
        }
        for (int i=0; i<array.length; i++) {
            int randomPosition = rgen.nextInt(array.length);
            int temp = array[i];
            array[i] = array[randomPosition];
            array[randomPosition] = temp;
        }
        for(int s: array)
            System.out.println(s);
        return array;
    }
Approach 2: Java Collection.shuffle() method
// Create an array
Integer[] array = new Integer[]{1, 2, 3, 4};
//int[] array = new int[]{1, 2, 3, 4}; //does not work
// Shuffle the elements in the array
Collections.shuffle(Arrays.asList(array));