Best are Psychic or Dragon or Steel Psychic and Dragon do the most consistent damage to a large number of types, and most psychic and dragon pokemon are incredibly good attackers. Steel is just impossible to damage, so it makes an excellent second type, although attacking with it is pretty pointless. Ghost and Dark, similar to Psychic and Dragon, would be good if there were some decent Ghost or Dark types, but Gengar is half Poison, and Tyranitar is amazing, but it is double-weak to fighting, a very common type, and it's really the only Dark type worth using, whereas almost all Psychics and Dragons are rape.
Worst are Poison, Bug, or Normal Poison is super-effective against one type, woohoo. Especially because Grass is also weak to only Fire, Flying, Ice, and Bug, which brings up another useless type. Bug is only good against Grass (which has a lot of better weaknesses), Psychic, and Ghost. Of course, anything that can damage a Psychic type has something going for it, because that's a hard type to hit, but Dark and even Ghost attacks do the same thing on much better pokemon. Heracross is the only decent bug, and that's because he's part fighting. Normal hits absolutely nothing with super-effective damage, and its moveset isn't good enough to warrant a lack of double-damage. Sure, there's Hyper Beam, but there's also Frenzy Plant, Blast Burn, and Hydro Cannon.