Teambuilder uses an intelligent algorithm, combined with input data from your Moodle users, to split a group into many groups. It's a way to get teams that satisfy you criteria, without picking through your students manually and asking them a bunch of questions. You can check out a video demo here.
Teambuilder was developed at the University of New South Wales.