SECURITY
crypto.getRandomValues による乱数。選択した文字種をそれぞれ最低1文字含めます。
指定した長さと文字種でランダムなパスワードを作ります。乱数には crypto.getRandomValues(Web Crypto API)を使っており、Math.random() と違って推測されにくい暗号論的な乱数です。
チェックを入れた文字種は、それぞれ最低1文字は必ず含まれるように調整したうえでシャッフルしています。生成はブラウザ内で完結し、結果が送信されることはありません。