Ok, first create a sphere with a added vector attribute, i called it SaveT. Before you use a script, place all the spheres where you want them, then copy the values of the translate vector with this expresion.
sphere1.SaveTX = sphere1.translateX;
sphere1.SaveTY = sphere1.translateY;
sphere1.SaveTZ = sphere1.translateZ;
setAttr -lock true "sphere1.SaveTX";
setAttr -lock true "sphere1.SaveTY";
setAttr -lock true "sphere1.SaveTZ";
copy and paste the text for all your spheres so they all get their values copied. Once you have executed the expression, delete the expression. Then have your spheres vibrate with.
//
float $minrange = -0.25;
float $maxrange = 0.25;
float $originalx = sphere1.SaveTX;
float $originaly = sphere1.SaveTY;
float $originalz = sphere1.SaveTZ;
sphere1.translateX = rand(($originalx +$maxrange), ($originalx +$minrange));
sphere1.translateY = rand(($originaly +$maxrange), ($originaly +$minrange));
sphere1.translateZ = rand(($originalz +$maxrange), ($originalz +$minrange));
Again copy and paste for all your spheres, you can change how much it ossilates by altering the declaration of the float $minrange and float $maxrange variables.
Not a neat and tidy solution but it works.