Collect information about each participant, including their weighted score which we can manually decide on or write a program and manually validate and preferences for the two categories (skiller/pvmer).
Assign appropriate weights to the score ( * total_level_weight) + ( * pvm_skill_weight) + bank value * and the two preference categories based on their choices of PVM or skilling or both.
Normalize the weighted scores and preference values to ensure fair comparison.
Use an algorithm like a Genetic Algorithm to form teams based on the normalized data while considering the preferences of each player
Calculate the team's overall score based on the weighted score and preferences of the teams' members.
Iterate through the algorithm several times with different random initializations to find the optimal team distribution.
Check the balance of the teams to ensure they are reasonably equal in terms of weighted scores and preferences.
Present the final teams to the participants in a clear and understandable format.