This tool uses an original algorithm and the speed of a computer to efficiently assign, without bias, up to 9 options of any subject to an unlimited population, based on each requester's prioritized choices (up to 9 choices). Feel free to use this tool for any situations necessary.
>>Disclaimer: If all options chosen in a request are no longer available, a person may be assigned randomly to a different option still available. If there are greater number of requesters than the total number of slots available, some may not be assigned to an option. >>About the algorithm used (steps explained): 1. Scanning all of the "1st choices", the tool finds all options in which there are no competition (meaning there are less requests for those options than available spots for them), and it assigns these options to the corresponding requesters. 2. Scanning the remaining "1st choices" (which are all options with more requests than their number of spots available), the tool randomly sorts requesters to fairly assign some of them to their choice options. The unlucky requesters will not get their choice option and will still remain unassigned. 3. The algorithm shifts its focus to the remaining requesters and scans their "2nd choices" (only if the "choice # limit" setting is set to 2 or more). It conducts and assigns more options by repeating step 1 and 2 for this choice level. 4. Step 3 is repeated for all level of choices until the algorithm reaches the level set by the "choice # limit". 5. If there are unlucky requesters who still remain unassigned, the algorithm randomly assigns them to options with available spots left (even if a requester did not request this option in their choices at all), prioritizing the remaining options that appear higher on the list. 6. If there are requesters who still remain unassigned after step 5, it can only mean that there are no more spots left available for any of the options. In this case, the unlucky remaining requesters are assigned to no options and displayed as "N/A" for their "option assigned". This is exactly how the algorithm functions. >>Credit: the program, algorithm, and design are all originally made by me, . Last updated on May 1st, 2025, fixing bugs, adding list input filters, and adding memory retention to number of availabilities after undoing an assignment.