We've been experimenting with breaking up employees into random
groups (of size 4) and setting up video hangouts between them. We're
doing this to replace the serendipitous meetings that sometimes
occur around coffee machines, in lunch lines or while waiting for
the printer. And also, we just want people to get to know each
other.
Which lead to me writing some code. The core of which is divide n
elements into groups of at least size g minimizing the size of each
group. So, suppose an office has 15 employees in it then it would
be divided into three groups of sizes 5, 5, 5; if an office had 16
employees it would be 4, 4, 4, 4; if it had 17 employees it would be
4, 4, 4, 5 and so on.