If we're talking about who the best villain is, to me that means the one who's actually difficult to beat, and lets face it... Eggman is pretty useless. So I picked Shadow, he's the one character who can really give Sonic a run for his money. Quite literally. It's kind of a cheap move just making an evil-twin character, but it does work.
Metal Sonic is a fairly close second.