質問: 1 + Math.floor( Math.random() * 50 ); ``` だと思うのですが ここで1〜50の中で指定した数(例:4、13、18、22、34、41)を除外したい場合どうすれば良いのでしょうか? 配列だと長くなってしまうので他に方法があればご教授お願いします。
回答: 手順としては、 1. コードで「1~50のうち、特定の値を除いた配列」を作っておく 2. 上で作った配列から、ランダムな番号を選んでその値を返す という流れがいいと思います。 ``` var excludes = [4, 13, 18, 22, 34, 41]; var arr = []; for(var i = 1; i <= 50; ++i) { if(excludes.indexOf(i) === -1) arr.push(i); } var random = arr[Math.floor( Math.random() * arr.length )]; ``` paiza.ioでの実行例