Here is a short version using arrays, if I understood your question correctly. Please let me know if you meant something else or you want something more.
const teams = ["England","Holland","Morocco","France","Argentina","Portugal","Brazil","Senegal","Switzerland","Japan","Australia","Croatia","USA","Spain","Germany","Ecuador","South Korea","Cameroon","Poland","Uruguay","Tunisia","Mexico","Belgium","Ghana","Saudi Arabia","Iran","Costa Rica","Denmark","Serbia","Wales","Canada","Qatar"
];
const groups = Array.from({length: 8}, () => []); //create array of 8 empty sub-arrays
teams.sort(() => Math.random() - 0.5); //shuffle 'teams' array randomly
teams.forEach((team, i) => groups[i % 8].push(team)); //iterate over the 'teams' array and push each team into one of the 8 groups
console.log(groups);
This prints the eight groups randomly every time like so:
[
[ 'Switzerland', 'Spain', 'Portugal', 'Uruguay' ],
[ 'Iran', 'Ghana', 'France', 'Poland' ],
[ 'England', 'Saudi Arabia', 'Serbia', 'Denmark' ],
[ 'Mexico', 'Morocco', 'South Korea', 'Ecuador' ],
[ 'Costa Rica', 'Tunisia', 'Senegal', 'Australia' ],
[ 'Qatar', 'Japan', 'Brazil', 'Croatia' ],
[ 'Canada', 'Wales', 'Cameroon', 'Belgium' ],
[ 'Germany', 'Holland', 'USA', 'Argentina' ]
]