I presume the point is to ensure that each user (or perhaps user in a certain group) gets roughly the same number of tasks assigned. To do this you could keep a record of the last user to be assigned a task and each time a new task is to be assigned then you pick the next user in order of ID until there are no users with a greater ID and then you start at the beginning again. Or you could feasibly choose a user at random from the group as on average random selection should be evenly distributed (though one would have to be careful to use the pseudo-random number generator in a way that ensures distribution is indeed even). It is a similar problem to Help | Training | Salesforce except that example is about distributing an existing pool of tasks, whereas you'd just need to allocate tasks out as they come. (Though I think you could do something closer to that example by using process instance id as they use 'lead number' and having a mapping of numbers to users.)
One could have a group as the candidate for a task so that anyone from the group can pick up those tasks and assign them to themselves but presumably the client doesn't want that in this case - maybe they want to ensure that everyone gets the same workload.