«Некоторые элементы появляются дважды» означает, что вы сделали что-то не так с shuffle .Если вы можете вставить полный код.Я не знаю, как ты это сделал, но попробуй что-нибудь ниже,
var dbUsers = firebase.database().ref('...');
dbUsers.on('value', gotData1, errData1);
function gotData1(data) {
var users = data.val();
var keys = Object.keys(users);
// Shuffle 'keys' here
shuffledKeys = shuffle(keys);
for (var i = 0; i < keys.length; i++) {
var k = keys[i];
var name = users[k].name;
var div = document.createElement('div');
div.setAttribute('class', 'div');
var usersPre = document.createElement('pre');
usersPre.textContent = name;
div.appendChild(usersPre);
};
}
function shuffle(array) {
var currentIndex = array.length, randomIndex;
var temporaryValue;
// While there remain elements to shuffle...
while (0 !== currentIndex) {
// Pick a remaining element...
randomIndex = Math.floor(Math.random() * currentIndex);
currentIndex -= 1;
// And swap it with the current element.
temporaryValue = array[currentIndex];
array[currentIndex] = array[randomIndex];
array[randomIndex] = temporaryValue;
}
return array;
}