I am trying to shuffle a string array using JS. I hard-coded three sets of characters. 3 characters from each set were chosen at random and then concatenated. So the concatenated string is 3 letters, followed by 3 numbers, followed by 3 symbols. I want to shuffle this concatenated string so their order is randomized.
I already checked How to randomize (shuffle) a JavaScript array?, and my algorithm and code essentially matches what the second solution was, except for the fact that I have the shuffle loop in a bigger function (instead of as its own function). Perhaps I should add the shuffling to its own function and call it within the bigger function, but I think that will still give me the same result.
The "shuffling part" of the function isn't actually shuffling. When I debug it with console.log(temp) and console.log(tp[rnd]), the correct values are showing. Basically, the function is returning the unshuffled string that I wanted to shuffle.
var letterSet = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz";
var numberSet = "0123456789";
var symbolSet = "~!@#$%^&*()-_+=><";
this.generatePassword = function() {
        var rl = "";
        var rn = "";
        var rs = "";
        var tp = "";
        // 3 random letters
        for(var i = 0; i < 3; i++) {
            var rnd = Math.floor((Math.random() * 52));
            rl += letterSet[rnd];
        }
        // 3 random numbers
        for(var i = 0; i < 3; i++) {
            var rnd = Math.floor((Math.random() * 10));
            rn += numberSet[rnd];
        }
        // 3 random symbols
        for(var i = 0; i < 3; i++) {
            var rnd = Math.floor((Math.random() * 17));
            rs += symbolSet[rnd];
        }
        // String concatenation
        tp = rl + rn + rs;
        // Shuffling part
        for(var i = 0; i < tp.length; i++) {
            var rnd = Math.floor(Math.random() * tp.length);
            var temp = tp[i];
            tp[i] = tp[rnd];
            tp[rnd] = temp;
        }
        return tp;
    }();
I don't understand what is going wrong.
 
     
     
    