In real life, wind shifts are not predictable and wind speeds vary over a course. The recent tournament head to head races have demonstrated the issue. Basically, a reasonably experienced sailor can always win the race if they get the better start. Once around the first mark, so long as they react to the moves of the opponent and don’t make any mistakes, they cannot lose. A solution is to have many many more wind shifts, but maybe smaller and less predictable shifts as well as different wind speeds on different parts of the course - all of which to be produced at random. In addition see https://marineverse.canny.io/marineverse-cup/p/wind-shifts-1 regarding the amount of wind shift available (asking for greater than 30 degrees either way).