The best way to go is the "Champagne Catamaran Sailaway to St. John" which takes you to a secluded beach with some nearby reefs for snorkeling. The "Heavenly Days" catamaran (which is large enough to carry 50 people or more and to ride the seas well) picks you up at the cruise ship pier in Charlotte Amilie, so you don't have to worry about making connections. Also, the catamaran crew serves a buffet lunch right on board so you won't have to deal with finding lunch on your own -- which might be tough if you go to a secluded area.
By the time you monkey with a taxi to Red Hook, the ferry, another taxi to the area where you plan to snorkel, and the reverse trip, you probably will spend about as much as the price of the catamaran sailaway for a lot more hassle. Also, you will have to leave your snorkelng area fairly early to make the connections in order to get back to the ship in time for departure. If the sponsored shore excursion runs late for any reason, the ship will await its return.
Do have a great cruise!