Not able to print one backslash in Java Script

I am making a random password-generation app using JS.

Following is an array of special characters which I am using to generate random special characters:

const specialChars = ['!', '"', '#', '$', '%', '&', "'", '(', ')', '*', '+', ',', '-', '.', '/', ':', ';', '<', '=', '>', '?', '@', '[', ']', '^', '_', '`', '{', '|', '}', '~', '\'];

In the app, I get two backslashes when I try to add a backslash to the password during generation using the above array:

specialChars[genRandNum(0, specialChars.length-1)];

genRandNum() function generates a random number b/w given range.
In this case, it generates a random number b/w 0 and last index of specialChars i.e. specialChars.length-1

So whenever a backslash \ is chosen randomly from specialChars array it should have printed only 1 backslash but it is printing the backslash twice.

Following is the code for the genRandChar() function for generating a random character:

const genRandChar = (choice) => {
    switch(choice) {
        case 1:
            return genRandAscii(65, 90); //For generating Capital letters
        case 2:
            return genRandAscii(97, 122); //For generating Small letters
        case 3:
            return genRandNum(0, 9); //For generating random number b/w 0 to 9
        case 4:
            return specialChars[genRandNum(0, specialChars.length-1)]; // for special chars
    }
}

genRandAscii() generates a random character bw given Ascii values

Following is the code for generating random password using capital letters, small letters, numbers(0 to 9) and special characters using genRandChar() function:

const genPassword = (filter) => {
    let password = "";
    const length = genRandNum(filter.min, filter.max);
    for(let i=1; i<=length; i++) {
        password += genRandChar(genRandNum(1, 4));
    }
    return {password: password, length: length, actualLength: password.length};
}

Sample Output of genPassword() function:

{ password: "OZ'Wl\p6", length: 8, actualLength: 8 }

In the above sample output as you can see that it was supposed to print only one backslash but it is printing twice due to which the actual length became 9 (count it) which should be 8 if only one backslash was printed.

The length which was chosen randomly i.e. length and actualLength i.e. equal to password.length is 8 only. So on counting also it should be 8 but it is 9.

Please tell me how to solve the problem.