Assignment with variants and/or limited number of submitting students


For my programming course I would like to present assignments with variants:

  • for each assignment there is a common part (bulk of description)
  • and there are several variants, demanding slightly (or not so slightly) different solutions
  • for N students there are M variants for a particular assignment, so only N/M students will be working on the same variant
  • because assignments aren’t mandatory, not all course’s attendants will be working on each particular assignment, so I would like to distribute variants evenly between all who decided to take a particular assignment

I didn’t discover any “variants” functionality for assignment in Github Classroom, so for now I’m going by creating a separate assignment for each variant.
But maybe there is an easy way to automate variants distribution? It would be super nice to have a single link to assignment, that give each student a different variant in a round-robin fashion.
I’ve thought about URL redirection, similar to URL shortening, but I don’t have any HTTP service I could use to implement such redirection on hand.

Another, similar functionality I’m looking for to achieve with Classroom is a limit on a number of students, attempting to do a particular assignment: some assignments should be available only for a limited number of students, for example, first 20 who will take that assignment.
Again, I do not see such functionality out of the box in Classroom.