https://leetcode.com/problems/shuffle-an-array/ public class Solution { int [] origNums; int [] shufNums; java.util.Random rd; public Solution(int[] nums) { origNums = nums; shufNums = origNums.clone(); rd = new java.util.Random(); } /** Resets the array to its original configuration and return it. */ public int[] reset() { return origNums; } /** Returns a random shuffling of the array. */ public int[] shuffle() { for (int i=shufNums.length-1; i>0; i--) { int k = Math.abs(rd.nextInt() % (i+1)); int tmp = shufNums[k]; shufNums[k] = shufNums[i]; shufNums[i] = tmp; } return shufNums; } } /** * Your Solution object will be instantiated and called as such: * Solution obj = new Solution(nums); * int[] param_1 = obj.reset(); * int[] param_2 = obj.shuffle(); */