A woman who witnessed part of the attack, Hansine, told TV2 that she had heard a disturbance, then she saw a woman take cover and “a man standing on the corner with arrows in a coat on his shoulder and a bow in his hand” .
“Afterwards, I saw people running for their lives. One of them was a woman holding a child in her hand,” she said.
The suspect was taken to a police station in Drammen nearby, the force states.
The police were informed about the attack at 18.13 local time in the city with 25,000 people about 80 km west of the capital Oslo. The suspect was arrested at 18.47.
“These events are shaking us,” said Prime Minister Erna Solberg on her last day in office.
On Thursday, she will hand over the office to the Jonas Gahr Store, whose Labor Party won parliamentary elections.
According to Reuters, Store said he had been kept informed by the outgoing government.
“What we have learned from Kongsberg testifies to a horrible and brutal act,” he said in a statement to the news agency NTB.
Norway’s royal family expressed their sympathy.
“We are appalled by the tragic events on Kongsberg,” King Harald said in a letter to the city’s mayor.
“The rest of the nation stands with you,” wrote the 84-year-old monarch.
In Kongsberg, the police blocked the site of the attack while urging the public to stay at home.
Television pictures showed ambulances and armed police in the area. A helicopter and bomb disposal team was also sent to the scene.
The police in the Scandinavian country are not normally armed, but after the attack, the National Police Directorate ordered that police officers be armed throughout the country.
Norway’s intelligence service PST had been alerted, spokesman Martin Bernsen told AFP.
“It’s all guesswork right now,” he said when asked about the possibility of a terrorist motive.