任意で一致しない複数の乱数を取得する場合は、Math.floor(Math.random()* (n+1))をdo whileで一致しない限りループさせて取得します。htmlに値を返すのは、document.getElementById(”).innerHTMLです。
<!DOCTYPE html> <html lang="ja"> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>王様ゲーム</title> <style> body { } </style> </head> <body> <h1>王様ゲーム</h1> <p>人数: <input type="text" id="num"></p> <p><input type="button" value="王様曰く!" onclick="kingSaid();"></p> <p id="result"></p> <script> function kingSaid(){ var orders = [ 'デコピンしなさい', 'クイズを出しなさい', 'ほめちぎりなさい', 'ドリンクを注ぎなさい' ]; var order = orders[Math.floor(Math.random()* orders.length)]; var num = document.getElementById('num').value; var p1 = Math.floor(Math.random()* (num)) + 1; var p2; if (num < 2){ p2 = 1; } else { do { p2 = Math.floor(Math.random()* (num)) + 1; } while (p1 == p2); } document.getElementById('result').innerHTML = '#' + p1 + 'の人が#' + p2 + 'の人に' + order; } </script> </body> </html>