The storm, originating from the south, hit the canton of Geneva around 4pm before striking the cantons of Vaud, Bern, Neuchâtel, Jura and Basel.
Traffic at Geneva’s airport was disrupted and numerous streets were turned into rivers from the heavy rain, the ATS news agency reported.
Skyguide said air traffic at Geneva airport was suspended for 20 minutes while the storm passed through.
Traffic was also delayed on Swiss Federal Railways trains between Geneva and Lausanne.
In 15 minutes, as much as 20 millimetres of rain fell in the Geneva region, the weather service of the Swiss broadcaster SRF reported.
The storm, coming a day before the official start of summer, marked a dramatic change in weather following a four-day heatwave that saw temperatures well above 30 degrees.
Local news media website ArcInfo.ch reported heavy damage in various parts of Neuchâtel from hailstones measuring up to five centimetres in diameter.
Vehicle and building windows were smashed and vineyards were damaged, the website reported.
Trains came to a standstill between Neuchâtel and Chaux-de-Fonds and Neuchâtel and Val-de-Travers following a mudslide.
At least a dozen other municipalities sustained damage from the storm as it tracked toward the French border.
In Biel, in the canton of Bern, dozens of people were injured as strong winds devastated a campsite for the Swiss federal gymnastics festival for the second time in a week, cantonal police said.
Police, firefighters, ambulance attendants and Swiss army members responded to deal with the situation, according to media reports.
The exact number of injured people could not be immediately confirmed.
Tents were thrown in the air and many people were trapped beneath debris, the SDA news service reported.
Last Thursday, strong winds forced cancellation of the opening ceremonies of the festival, involving 60,000 athletes from across the country.