I have had students do group work in my various classes for decades. Until last year I always let the students choose their own groups. Some groups worked well together and some did not. When a group did not work well together it was difficult to remedy the situation.
Last year I tried something new; teacher assigned groups. In my MTH 120 class I assign the groups every day. Each day the groups are assigned differently, some days by like abilities and some days by differing abilities. Always the unprepared students are in the same group.
I have been amazed at how well this has worked. One thing this does is let the students get to know all of their classmates, not just the ones they happened to sit next to on the first day. The best thing however, is that groups don’t get into a rut. If I notice a group of students aren’t working well together I don’t put them together anymore, other than that I expect every student to be able to work with any other student in the class.
Here’s how I do it. Before class starts I look at their class preparation grades for that day and I arrange the students into groups based on these grades. When I get to class I put name cards on the desks where I want the students to sit. The students look for their name cards when they get to class and sit where assigned. I have not had any students complain about this. Actually, the one time last semester that I let them choose their own groups, four students asked me not let them choose again.