Код работает некорректно

Пробую сделать жеребьевки. Есть вопрос, как сделать чтобы в массиве выводилось не более 4 елемента и они не повторялись?

let england = ["Манчестер Сіті","Манчестер Юнайтед",'Лестер','Челсі' , 'Вест Хем ' , ' Тотенхем '];
let spain = ['Атлетіко', 'Барселона', 'Реал Мадрид', 'Севілья', 'Реал Сосьєдад','Бетис'];
let italy = ['Інтер', 'Мілан' , 'Ювентус' , 'Аталанта' , 'Наполі' , 'Рома' , 'Лаціо'];
let france = ['ПСЖ', 'Лілль' , 'Ліон' , 'Монако' , 'Ланс' , 'Марсель'];
let germany = ['Баварія', 'Боруссія Дортмунд', 'Лейпциг', 'Байер', 'Вольфсбург'];

function rnd(min, max) {
let rand = min - 0.5 + Math.random() * (max - min + 1);
    return Math.round(rand);
}


var list = [];

list.push(england[rnd(0, england.length - 1)]);
list.push(spain[rnd(0, spain.length - 1)]);
list.push(italy[rnd(0, italy.length - 1)]);
list.push(france[rnd(0, france.length - 1)]);
list.push(ukraine[rnd(0, ukraine.length - 1)]);
list.push(germany[rnd(0, germany.length - 1)]);

console.log(list)

Ответы (1 шт):

Автор решения: Алексей Шиманский

let england = ["Манчестер Сіті","Манчестер Юнайтед",'Лестер','Челсі' , 'Вест Хем ' , ' Тотенхем '];
let spain = ['Атлетіко', 'Барселона', 'Реал Мадрид', 'Севілья', 'Реал Сосьєдад','Бетис'];
let italy = ['Інтер', 'Мілан' , 'Ювентус' , 'Аталанта' , 'Наполі' , 'Рома' , 'Лаціо'];
let france = ['ПСЖ', 'Лілль' , 'Ліон' , 'Монако' , 'Ланс' , 'Марсель'];
let germany = ['Баварія', 'Боруссія Дортмунд', 'Лейпциг', 'Байер', 'Вольфсбург'];


let maxTeamsCount = 4;
let allTeams = [...england,...spain, ...italy, ...france, ...germany];
let allTeamsShuffled = allTeams.sort(() => Math.random() - 0.5);
let list = allTeamsShuffled.slice(0, maxTeamsCount);

console.log(list);


???

let list = [];
let maxTeamsCount = 4;
let countriesTeams = [
    { england: ["Манчестер Сіті","Манчестер Юнайтед",'Лестер','Челсі' , 'Вест Хем ' , ' Тотенхем '] },
    { spain: ['Атлетіко', 'Барселона', 'Реал Мадрид', 'Севілья', 'Реал Сосьєдад','Бетис'] },
    { italy: ['Інтер', 'Мілан' , 'Ювентус' , 'Аталанта' , 'Наполі' , 'Рома' , 'Лаціо'] },
    { france: ['ПСЖ', 'Лілль' , 'Ліон' , 'Монако' , 'Ланс' , 'Марсель'] },
    { germany: ['Баварія', 'Боруссія Дортмунд', 'Лейпциг', 'Байер', 'Вольфсбург'] }
];

let shuffle = (arr, count) => arr.sort(() => Math.random() - 0.5);

let shuffledCountriesTeams = countriesTeams.sort(() => Math.random() - 0.5);
let shuffledCountriesTeamsCut = shuffle(countriesTeams, maxTeamsCount).slice(0, maxTeamsCount);

for (const value of Object.values(shuffledCountriesTeamsCut)) {    
    let team = shuffle(Object.values(value)[0], 1).shift();
    list.push(team);
}

console.log(list);

→ Ссылка