Ahh ok. You could offset thet with a drag field that would kill the particle acceleration caused by it tough..
But yes you can simply just a add a pre/post dynamics script that slightly turns the velocity each frame (you can store it if you wish the turn to stay persistent for longer than a frame). This would keep the momentum you have right now. Is that a good solution for you? It would look something like this:
$magnitude=0.5; //use some attribute so you can change it easily
$frequency=frame*0.5; //same Here
$speed=mag(particleShape1.velocity);
$nuDir=particleShape1.velocity+$magnitude*noise
<<particleShape1.particleId*12+$frequency,
particleShape1.particleId*22+$frequency,
particleShape1.particleId*44+$frequency>>
);
particleShape1.velocity=unit($nuDir)*$speed;
But the possibilities are limitless. Just your math skill is the limit really, makes the calculus teacher say i told you so.
Another way would be to preplot all the movement with a randomized curve function taht way each one of the would have thir own purpose in the game. It allows you tohave pretty accurate controll over each particle, its used in one of my older tests taht still happens to be on line to watch.
quicktime movie
Obviously the result can be more random than that. But theese particles definitely have a plan at their hand.