For the fish-vs-shark problem, instead of making a long profit-formula,
players who lose a (coin)game can be paired up against each other and players who win can be paired up against each other, as long as only the last game is counted and bet-size is the same for these games players won't try to game the system, lower and higher skill players will still play each other, and the system will not be a pure shark-fish-pyramidn anymore.
(Such system should not replace other (not match-made) coin-games.)
I like this idea a lot its simple yet very effective.
This could even go one step further. lose/lose is matched up with lose/lose if any are available, if none are available lose/lose will just matchup with a lose. Same goes for win/win.
Edited 12/5/2014 22:14:31