Share the joy
Assuming we have an integer array, we want to shuffle(randomly reset elements in array). One approach is like this: iterate each element from [0, …, n – 1]. For each element i, swap i with a random position within [0, …, i].
public void shuffle(int[] nums) { Random random = new Random(); for (int i = 0; i < nums.length; i++) { int j = random.nextInt(i + 1); swap(nums, i, j); } } private void swap(int[] nums, int i, int j) { int tmp = nums[i]; nums[i] = nums[j]; nums[j] = tmp; }