I think we'd need to be careful of character bloat; you wouldn't want too many characters.
The original eight (Mario, Luigi, DK, Peach, Toad, Yoshi, Wario, Bowser) need to stay. That much is certain.
Your second-tier-ish characters (Daisy, Waluigi, Koopa Troopa, Diddy Kong) ought to be in as well.
No babies, excluding Bowser Junior. If you must, have the Baby Mario Bros sharing a kart, but having Baby Daisy WHEN SHE DIDN'T EVEN EXIST is nothing short of stupid.
Not too many common enemies, maybe a couple of bosses. King Boo and Birdo would do fine. Kamek would be win but we can't expect it. Dry Bowser is dumb. As is Petey.
Wouldn't want too many characters from other game series. Funky Kong is awesome but mightn't fit too well, though he'd be nice for rounding out the roster.
Rosalina. This much is certain.
That leaves us with 19 characters, add on the Mii and that's 20. That's more than enough for a good racing game and it doesn't overdo itself. You could probably change around a couple of the ones on the outer (King Boo, Kamek, Funky Kong, the babies, Rosalina, maybe the Mii) but after that many characters it just gets a bit stupid.
And, just as an afterthought, couldn't you see costumes, like in Sonic Adventure 2, being used? Maybe they could change to suit the kart the racer is driving, or whatever, but having some of the more terrible characters as suits of others could be useful for cutting down on the more moronic decisions made in-game.