One of our party was mugged on the beach there in the middle of the day a few years ago. I also had an incident in Stonetown myself when a trader followed me shouting that I was a racist for just refusing a tour - very frightening because he drew the attention of the whole marketplace.
It is a really gorgeous place but I would think it is unsafe for a group of girls in their 20s. They would be advised to stay in their resort and at that they could be anywhere, so not much point in all of the expense.
That said we still had a brilliant trip and didn't spend a fortune. We booked low budget traditional places from a british website. They were clean and comfortable with nice food and a more local feel than the big hotels (the mugging actually happened on the stretch of beach beside one of the luxury hotels).
The port and taxi area in Dar es Salem are crazy and we were glad to reach the safety of the airport. You are inclined to let your guard down in Zanzibar because it feels like any beach holiday, but you must keep in mind that there are desperately poor people living alongside the resorts. I also felt that there was some muslim resentment of western women - in general though people were very nice to us. Some small hotels wouldn't take couples unless they were married. I would say take the same care as in any African city. Some how the incidents felt worse because they happened in Zanzibar, I expected hassle in the cities but not relaxing on the beach.
If they do decide to go advise them to stick together at all times, take only official tours from reputable sources and be very careful if venturing off into the narrow streets of stone town. No harm to wear wedding rings - I found it easiest to say that my husband was arranging things when being hassled for tours etc. Also dress modestly if you want less hassle. I think there is lots of money to be saved by booking accomodation via an independent site, but without local knowledge this could be tricky. I don't think the big resorts are worth the money, they are often isolated from the centre of town and you are limited to small stretch of beach.