Most of the people on the street throw right hooks / right overhand / right weird straight punch.. what is the best way to counter this punch?
There is no best way. There is only what works for you. What would I do? I don't know. It depends. My body will move in accordance with time and motion, as I trained it. Or it won't, and I'll get hit.
But let's play 'what if'. Let's say I see the punch coming and I'm for whatever reason squared up with the person. A right haymaker is a short-distance attack. We have to be nearly in each other's grills for it to connect. There is one target - my noggin. The attacker throwing a haymaker has committed their power and balance to the throw, meaning they will end the motion leaning slightly forward. At the moment they throw the haymaker, they cannot kick me, advance or retreat, evade, or punch with the other hand. After the haymaker, sure. But at the frozen-in-time moment, they cannot do any of those things. A haymaker is a power punch, and that's where their focus is.
If I can react quickly enough, all I have to do is move my head (or entire body) to avoid the haymaker connecting with it. Rule one of karate is don't get hit. So a slip can work. Coupled with a counter-attack, it could end the encounter. What counter-attack? A right uppercut punch to the face would be nice. After all, he's feeding his face to you if he's throwing a right haymaker and misses. His throat would also be open. Or the nerve cluster in and around his right armpit. You could kick the leading leg when he plants it, as he'll have most of his weight on it as he lands or attempts to land his punch. In Isshinryu, we'd call it a shoba konate.
I don't think I would attempt a kick to the groin; distance is wrong. A knee might work, but I don't think I'd try that personally.
I'd avoid all fancy high kicks, as I can't do them. If I could, a wheel kick to that nice fat leading face could be very satisfying; he's hanging it out there for you after all.
Remember, this guy is American. We know this because haymaker, and because I'm in America and not likely to ever by anywhere else. Guys who throw haymakers throw reverse punch style, so he stepped left to throw right. All his weight, as I said, is on that planted left leg. Get offline and kick that leg out from under him and that punch will never land. But you have to be able to see that (probably telegraphed) punch coming from last Tuesday. If that's how he throws, then yeah, that would work.
Another option would be to try to block the haymaker. Very do-able, but with a looping punch, there's always the chance you would still get hit. Move in and throw an upper body block and it could wrap around your block and hit you in the side or back of the head. You'd probably want to combine the block with a counter, such as an uppercut or elbow to his face as you move in.
Assuming he's not some kind of power bruiser, you could take the punch with an upper body block using a soft technique and pull his arm down to your waist, which throws him further off balance in the direction he was already going anyway and jams his chin forward for you to punch. This requires that you be adept enough to have the necessary speed, coordination, and body mechanics. Beginners could probably not pull this off.
I've seen people using the upper body block to move into an arm lock, but although I've practiced it some, I'm not adept and not really a fan; it ties up both my arms to immobilize one of his. If I don't immediately throw him to the ground, he's going to pummel me with his free arm.
One of my instructors has a basic philosophy that I like a lot. He's been a bouncer, he's been in many 'street fights' in his life, and he believes in 'block 'em and clock 'em.' In other words, throw the upper body block and knock them out with your counter.
There are a lot of grappling techniques that would work very well for this; I've seen some of them. But I'm not a grappler and couldn't do any of them, so I'd avoid that.
It should also be mentioned that often, a haymaker is a sucker punch. So I may not see it coming; I'd just get hit.