Leif K-Brooks said:
The number of choices will be up to the user, though. There has to be
some way...
They can't choose more than the number of options, so repeat the
options n times, including 'no choice' in each one.
For n small, use radio buttons as they're nicer.
For n large, use <select> as it doesn't take up over a page per choice
selection.
You probably want to submit this to an intermediate piece of code that
checks that their list is consistent - i.e. if the options are
A,B,C,D,E they have something like
ABCDE or DEA..
and not
ABAA. or A...D or .ABCD
and lets them re-adjust it if they can.
It's not an ideal solution, but I've had few complaints about that
part of it when I had to solve a similar problem (it was an online
voting system with preferences).