任意で一致しない複数の乱数を取得する場合は、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>