nightblitz42:
Lottery Moves:
Eliminating degenerate options is inarguably good design philosophy, but I think that Metronome/Assist/Sleep Talk can be reconciled with this concept through milder means. Unless I'm mistaken, when Metronome and company call a move, that move is considered to have been used for the purposes of any substitution in the orders of a Pokemon moving later in the action. This means we really only have to worry about these moves' interactions with retroactive knowledge and faster opponents (i.e. priority shifting substitutions).
Given that Metronome already can't call moves of the same type, I think that either of the following restrictions could help reduce its degeneracy:
1. If at least three of the moves selected by Metronome belong to the same substitution class, Metronome shares that substitution class.
2. Each move called by Metronome must belong to a different substitution class.
The first option leaves Metronome a mere 10-20% chance to slip past an opponent's substitutions, which is no worse than the chance of wasting an action as a result of a status condition or unlucky miss. More importantly, this would also allow a player to react to Metronome at a different point in the action order, creating an opportunity to include important options such as CounterCoat, Prankster Taunt, damaging Priority moves, Sleep Talk, and Psycho Shift in a substitution. Alternatively, the second choice would prevent a player from hedging their bets by packing Metronome with every move in such powerful sub classes as entry hazards or sleep-inducing moves, lowering the chance of an upset.
Assist can be changed in similar ways; the first option for Metronome could be revised to fit Assist's smaller call pool (likely lowering the threshold to two moves), and the second option works just as well for this move. A third method — which could coexist with either of the others — would be to simply add Metronome's rule preventing moves of the same type from being chosen together. This should solve one of the issues you mentioned by preventing an Assist user from outright ignoring certain substitutions, such as by, say, laughing off a Damaging Electric-type Move substitution by calling the pool of Thunderbolt/Thunder/Zap Cannon.
In contrast, I think that Sleep Talk can safely avoid any rework, as it is inherently more defensive in application; its primary use is preventing a player from losing a Pokemon to the Sleep status, and Rest's wake-up clause means the RestTalk strategy can be foiled by any Pokemon capable of reaching a metagame-relevant damage output.
Gender:
Those are all solid points; I can't really disagree with anything posted here and in the Implementation Thread. My only suggestion would be to key Rivalry to Egg Group rather than typing, as I think this would retain more of Rivalry's "competition over mates" flavor and broaden its applicability.