Effectiveness of grouping students to balance skills
I have a practical suggestion based on a course I used to attend.
It was a natural continuation of another course (which was a requirement), and the majority of the student body from the first course was proceeding to take the second course.
The only team leaders were picked by the professor, in a sense that the best students from the previous class were team leaders, and were free to form their group as they wanted.
This ensured several things:

no &quot;elite&quot; team with only the top students

the groups were formed mostly to students liking

some degree of balance was naturally present
(e.g. we grouped on purpose with 6:4 in favor of &quot;stronger&quot; students, because we were allowed to distribute the assignment grade on our own, and that way non-perfect score still meant everybody got approximately the grade they wanted which coincided mostly with their effort: non-perfect project was not a tragedy)

on the previous class, a small number of students were actually &quot;pushed&quot; to go the extra mile, do exceptionally, and provide a team leader for their social group


From the student perspective, at least, it worked pretty well. If you say the student body is not changing that much from class to class, maybe something similar could work.
The downside might be that an &quot;elite&quot; group is clearly identified, but if it is based on objective criteria, and not seemingly the random whiff of a professor, it does not seem so bad.