You could make a method for the bullet object that plays a random sound then call it every so often.
So, say for a projectile with a datablock name of MyProjectile:
function MyProjectile::playSoundTick(%this, %object) {
%position = %object.getTransform();
switch(getRandom(0, 2)) {
case 0:
%profile = Sound1Profile;
case 1:
%profile = Sound2Profile:
case 2:
%profile = Sound3Profile;
}
serverPlay3D(%profile, %position);
%this.schedule(1000, playSoundTick, %object);
}
package MyProjectileSound {
function Projectile::onAdd(%this) {
if(%this.getDatablock() == MyProjectile)
MyProjectile.playSoundTick(%this);
parent::onAdd(%this);
}
};
activatePackage(MyProjectileSound);