If you want nothing but celebrity players on a primetime game show, either play for a random member of the studio audience, or for viewers who enter for a chance to win from home. Or do a charity / civilian winnings split.
While I don't much care about watching celebrities play games to win money for charity, I care even less when they're playing to win money for some random person who's just sitting there. At least I understand why charities should receive thousands of dollars in free money.
Personally, I think the obligation to play for charity often takes the fun out of the game. When a celebrity plays particularly poorly, they visibly feel bad because they prevented a charity from receiving money. And how many times have we heard "I want to keep playing, but I don't want to risk losing all this money for my charity"?
It doesn't work for every format (for example,
Millionaire), but if celebrities must be contestants, I think it would be much more fun if each of the charities received an identical, set amount and the celebrities just played the game for points and bragging rights. The fun comes from watching these people who are already very comfortable in front of a camera good-naturedly trash-talking each other and reacting with exaggerated embarrassment when they fail. If somebody loses, who cares? The charities get paid either way.