Belidos has the right general idea.
My suggestion would be to have your default, engine-called fire.ogg be an essentially blank audio file (removing it completely may create problems)...
Then, specify your custom alternate sounds in gunspec as sound7,8,etc. (don't use any of the reserved slots Belidos mentioned above).
You can then tie the sound to an animation frame... In the sframe1 = 11,5 example, 11 is the frame and 5 is the sound ID.
Now, to make this all work you need to duplicate your fire animations three times (maximum) in your animation timeline and then specify as start fire, start fire2, start fire3, etc.
GG will automatically randomize between these animations each time the weapon is used (mostly useful for melee weapons) and by extension, also randomize between your linked sound calls.
The only foreseeable downside to this method is that if an enemy has the weapon it will likely make no sound when attacking but if it's for the player only there generally should be no problem unless framerate is really fluctuating and causing frames to be skipped. Multiplayer would probably not work either.
Example relevant bits using a lightsaber weapon (and totally unrelated anim ranges yanked from one of my weapons):
;strike vector 3
start fire = 240,244
end fire = 245,249
;strike vector 6
start fire 2 = 260,264
end fire 2 = 265,269
;strike vector 5
start fire 3 = 280,284
end fire 3 = 285,289
...
sound7 = woosh1.ogg
sound8 = woosh2.ogg
sound9 = woosh3.ogg
...
sframe4 = 241,7
sframe5 = 261,8
sframe6 = 281,9
That should give you the general idea. It would allow for 3 randomized attack animations with a different sound for each one.
Gigabyte P67A-UD4-B3, Intel Core i7 2600K (passmark 8555), 16GB Corsair DDR3, EVGA GTX 970 SC (passmark 8637), Win7 Pro 64-bit SP1, Primary monitor @ 1920x1080, secondary monitor @ 1024x1280