Officers said a suspect had been detained following the incident in Kongsberg on Wednesday and that a probe was underway to establish whether the attack amounted to an act of terrorism.
“The man used a bow and arrow ... for some of the attacks,” police chief Oeyvind Aas told reporters on Wednesday. Officers were investigating whether other weapons had also been used, he said.
“The man has been apprehended ... from the information we now have, this person carried out these actions alone,” Mr Aas told reporters, adding: “It's natural to consider whether this was an act of terror.”
Two other people were wounded and admitted to hospital where they are in intensive care, including an officer who was off duty and inside the shop where the attack took place, police said.
The man has not been questioned yet, and his motive was unknown, Mr Aas said.
Following the attacks, the police directorate said it had immediately ordered officers nationwide to carry firearms. Norwegian police are normally unarmed but officers have access to guns and rifles when needed.
“This is an extra precaution. The police have no indication so far that there is a change in the national threat level,” the directorate said in a statement.
The attacks took place over “a large area” of Kongsberg, a municipality of around 28,000 people 66km (41 miles) southwest of Oslo.
The attack began about 1810 local time [1610 GMT]. Police were alerted to the attack around 1830 and arrested the suspect about 20 minutes later.
Witnesses reported that the attack began at a Coop Extra store.
“I can confirm that there has been a serious incident in our Coop at Kongsberg,” spokesperson Silje Aliso told the tabloid VG.
She said that none of their employees were physically injured.
Acting prime minister Erna Solberg described the attack as “gruesome” and said it was too early to speculate on the man’s motive.
She said the man has been taken to a police station in Drammen but he had not yet been questioned by investigators, who are still working to determine if the attack was an act of terrorism.
The prime minister-designate, Jonas Gahr Stoere, who is expected to take office on Thursday, called the assault “a cruel and brutal act” in comments to Norwegian news agency NTB.
Town mayor Kari Anne Sand told TV 2: “This is a gruesome incident, there is nothing else to say. Now we must try to take care of the inhabitants as best we can.”
She said that the attack took place in the Vestiden area, which has housing, shops and a university campus.
Norway’s minister of justice and public security, Monica Maeland, has received updates on the attacks and was closely monitoring the situation, the ministry said.
City officials invited people who were affected by the attack and their relatives to gather for support at a local hotel.
The attack comes over a decade after Anders Breivik, a right-wing extremist, set off a bomb in Oslo’s government district which killed eight people in July 2011. He then carried out a shooting massacre at the summer camp of the left-wing Labor Party’s youth organisation on Utoya island, killing 69 people.
Breivik was sentenced to 21 years in prison, the maximum under Norwegian law, but his term can be extended as long as he is considered a danger to society.
Watch the latest videos from Yahoo News UK
Additional reporting by the Reuters