function generatePassword(length) { let charsets = ['ABCDEFGHIJKLMNOPQRSTUVWXYZ', 'abcdefghijklmnopqrstuvwxyz', '0123456789', '!#$%&*'] let allCharsets = charsets.join('') let retVal = '' for (let i = 0, len = charsets.length; i < len; i++) { let n = charsets[i].length retVal += charsets[i].charAt(Math.floor(Math.random() * n)); } for (let i = 0, n = allCharsets.length; i < length - 4; i++) { retVal += allCharsets.charAt(Math.floor(Math.random() * n)); } return Array.from(retVal).sort(() => 0.5 - Math.random()).join('') } generatePassword(8)