The courier shuffle is supposed to be random but at least for me only 2 out of 10 couriers are always picked from my shuffle. There are 2 that were never picked up in the last ~30 games. Same for the ward shuffle.

My suggestion is not to make it fully random, and instead having an internal stored variable pointing to the next courier. That way it will pick the next courier / ward and it will make sure every courier is picked up at least once.