Вы можете использовать splice
, чтобы удалить элемент из массива после его отображения.
Если вы не хотите изменять массив, вы можете создать копию до его изменения.
let id = Math.floor(Math.random() * Qu.length);
let p = Qu[id];
Qu.splice(id, 1);
text += "This is " + p + "<br>";
Рабочий код:
function Gen() {
let Qu = ["Yazeed", "Ammar", "Marwan", "Othman", "Sameh", "Amro", "Ibraheem"];
let p1 = document.getElementById("demo1");
let text = " ";
for (let i = 0; i < 4; i++) { //Qu.length = 7
let id = Math.floor(Math.random() * Qu.length);
let p = Qu[id];
Qu.splice(id, 1);
text += "This is " + p + "<br>";
}
p1.innerHTML = text;
}
<div id="demo1"></div>
<button type="button" onclick="Gen()">Generate</button>