The Pokémon having its moves generated
The TM move pool
The egg move pool
A holder for the count of moves that have been added to the moveset from TMs
A holder for the count of moves that have been added to the moveset from egg moves
The base weights of all moves in the master pool. This mutated as moves are removed from consideration
Fill in the remaining slots in the Pokémon's moveset from the provided pools