You might notice after a little while that snd_attack2 is twice as likely to play as the other two. That's because you're rounding the random number to the nearest integer. Think about how that works.
Bump up the random by 1, and round down instead to get equal probability.
var sound;
sound = floor(random(3));
if sound = 0 sound_play(snd_attack1);
else if sound = 1 sound_play(snd_attack2);
else if sound = 2 sound_play(snd_attack3);
Or, GM6 has a new function called choose() that makes some cases of randomness much easier.
sound_play(choose(snd_attack1, snd_attack2, snd_attack3));