Many of the new teaching methods that currently exist are based on collaborative learning. Indeed, cooperative work adds value to the processes of teaching and learning, allowing the acquisition of the Key Skills with greater ease and effectiveness. One of the fundamental factors to implement these methodologies based on cooperative work is the definition and formation of heterogeneous working groups among students. However, this is not a trivial task: the large number of parameters to be taken into account to generate heterogeneous groups in a class is a key parameter that increases the complexity of the task. Currently, this process of group allocation is manually solved by the teaching staff; an individual profile analysis is performed for each student and then each one is assigned to a particular group, which can take more than a week of work when the number of students is around 120. This paper presents a tool that supports the teaching staff in this daunting task and that allows the automatic generation of heterogeneous groups. The tool, its functionalities, the technical processes for development and the decisions to validate its design and obtain satisfactory results are detailed.