You're going to need to use custom attributes and expressions.
If you're not familiar with using these, check out my tutorial first:
Custom Attributes and Expressions in Maya
Here's what you do for the vibrate control:
There are a number of functions in the expression language for generating random values. (rand, gauss, etc). And you can also use sine and cosine functions to make the objects oscillate.
I'd suggest something along the lines of this: parent each object that you want to vibrate independently under its own null node and center the pivot. Name it something appropriate like "Tailpipe_vibrateNode"
Then in the expression editor:
$amplitude = <>
$constant = <>
$time = currentTime -query
;
Tailpipe_vibrateNode.tx = $constant * $amplitude * sin(rand($time));
Tailpipe_vibrateNode.ty = $constant * $amplitude * sin(rand($time + 1));
Tailpipe_vibrateNode.tz = $constant * $amplitude * sin(rand($time + 2));
I can't guarantee that expression is without bugs, cause I just did it out in my head. I haven't tried it.
Set the amplitude attribute to 1 and play with the "constant" value until the objects vibrate the way you want them. Then you can key the amplitude value to change the intensity of the vibrations, or set it to zero to turn them off entirely.
Hope this helps