Someone asked this question before but I want to give my thought too.
I personally think Protoss is the best because it is the hardest one to control and I have the most fun to play them. Zerg players in my opinion are sometimes blind but still A-command winning the game but lurker web + hydras + lings + expand provide a pretty good set-up against protoss and I sometimes fall into the trap with my toss. In my opinion, Terren is the strongest race, especially on 1 on 1. As long as the terren players don't fall sleep and set up the factory units carefully. Both Marines (vs zerg) or Vulcan(vs toss) can move freely and they will doom the opposing players.
In terms of strength, protoss sucks. The units is just as expensive as factory units of terren’s but so much weaker. You can see 24 goons fall in front of tanks and mines in the matter of seconds. In addition, even with speedy zealots, toss units are no match from the versatility of the zerg. Not to say the replacments ability of zerg units.
However, toss has tons of magic available for you and their units have the most specialties such splash damage of revears and corsairs that require careful control. Maintain the resources and number of units are essential for toss players and there is no lucky win (maybe lucky in the process) for a toss player. Win with toss is the most satisfactory thing in the starcraft world. That makes protoss the best race in starcraft.
