Shuffle or Randomize a list in Java - GeeksforGeeks

09 Sep, 2021
Shuffling a list Collections.shuffle() is used to shuffle lists in java.Class hierarchy: 
java
   ↳ util
      ↳ Collections
Syntax: 
Collections.shuffle(list);
Examples: 
Java
// Java program to demonstrate working of shuffle()import java.util.*; public class GFG {    public static void main(String[] args)    {        ArrayList<String> mylist = new ArrayList<String>();        mylist.add("ide");        mylist.add("quiz");        mylist.add("geeksforgeeks");        mylist.add("quiz");        mylist.add("practice");        mylist.add("qa");         System.out.println("Original List : \n" + mylist);         Collections.shuffle(mylist);         System.out.println("\nShuffled List : \n" + mylist);    }}
Original List : 
[ide, quiz, geeksforgeeks, quiz, practice, qa]

Shuffled List : 
[ide, practice, quiz, qa, geeksforgeeks, quiz]
 
Shuffling a list using user provided Random Object Syntax:
Collections.shuffle(list, Random object);
Examples: 
Java
// Java program to demonstrate working of shuffle()// with user provided source of randomness.import java.util.*; public class GFG {    public static void main(String[] args)    {        ArrayList<String> mylist = new ArrayList<String>();        mylist.add("ide");        mylist.add("quiz");        mylist.add("geeksforgeeks");        mylist.add("quiz");        mylist.add("practice");        mylist.add("qa");         System.out.println("Original List : \n" + mylist);         // Here we use Random() to shuffle given list.        Collections.shuffle(mylist, new Random());        System.out.println("\nShuffled List with Random() : \n"                           + mylist);         // Here we use Random(3) to shuffle given list. Here 3        // is seed value for Random.        Collections.shuffle(mylist, new Random(3));        System.out.println("\nShuffled List with Random(3) : \n"                           + mylist);         // Here we use Random(5) to shuffle given list.  Here 5        // is seed value for Random.        Collections.shuffle(mylist, new Random(5));        System.out.println("\nShuffled List with Random(5) : \n"                           + mylist);    }}
Original List : 
[ide, quiz, geeksforgeeks, quiz, practice, qa]

Shuffled List with Random() : 
[geeksforgeeks, practice, qa, ide, quiz, quiz]

Shuffled List with Random(3) : 
[quiz, ide, practice, quiz, geeksforgeeks, qa]

Shuffled List with Random(5) : 
[ide, quiz, geeksforgeeks, quiz, practice, qa]
 
How to write our own Shuffle method? We can use Fisher–Yates shuffle Algorithm that works in O(n) time. 
Java
// Java Program to shuffle a given arrayimport java.util.Random;import java.util.Arrays;public class ShuffleRand{    // A Function to generate a random permutation of arr[]    static void randomize( int arr[], int n)    {        // Creating a object for Random class        Random r = new Random();                  // Start from the last element and swap one by one. We don't        // need to run for the first element that's why i > 0        for (int i = n-1; i > 0; i--) {                          // Pick a random index from 0 to i            int j = r.nextInt(i);                          // Swap arr[i] with the element at random index            int temp = arr[i];            arr[i] = arr[j];            arr[j] = temp;        }         // Prints the random array        System.out.println(Arrays.toString(arr));    }          // Driver Program to test above function    public static void main(String[] args)    {                 int[] arr = {1, 2, 3, 4, 5, 6, 7, 8};         int n = arr.length;         randomize (arr, n);    }}
[5, 7, 1, 3, 6, 8, 4, 2]
 
simmytarika5
Java-List-Programs
Java
Java Programs
Randomized
Java
Writing code in comment?
Please use ide.geeksforgeeks.org,
generate link and share the link here.
Comments
Old Comments
Initialize an ArrayList in Java
HashMap in Java with Examples
Interfaces in Java
How to iterate any Map in Java
ArrayList in Java
Initializing a List in Java
Convert a String to Character array in Java
Java Programming Examples
Implementing a Linked List in Java using Class
Convert Double to Integer in Java