As professor told us today during lessons i'll try to be as much concise as I can.
The code is well organized, but some comments would have been appreciated. In the fitness function the type hinting is wrong.
The proposed strategy likely only works for a Nim game of 5 rows (because of the hard-coded values), and does not provide a solution for the k version.
In order to make the final result even more accurate, your strategy shouldn't always be the first moving.
The proposed solution it's not mutating a starting solution, but it's actually generating lambda random solutions.
You should try to create a starting solution, mutate it in some way, apply a recombination operation(optional step) and then choosing the best one.
As professor told us today during lessons i'll try to be as much concise as I can.