Random Number

The code to use the nextInt() method to generate an integer within a range is:

public static int generateRandomIntIntRange(int min, int max) {
    Random r = new Random();
    return r.nextInt((max - min) + 1) + min;
}

Shuffle

Shuffle cards

public void shuffle(int[] cards) {
    Random r = new Random();
    int len = cards.length;
    //swap random card from card[0,...51] with card[51], then 
    //swap random card from card[0,...50] with card[50], then 
    for(int i=len; i>=1; i--) {
        int rand = r.nextInt(52); //generate random num in [0,...,51]
        swap(card,rand,i);
    }
}

Randomly select k number from an array

Reservoir Sampling

Extend: Randomly select k numbers

Last updated