You are on the right track but forgot a couple of things. Your algorithm will actually vary the rotation as each cube will show discrepancy in rotation over time. The problem is that they will always move in the positive direction along the x,y,z axes because Random.value is a value generated between 0.0 - 1.0
This is how you get both positive and negative rotations, as well as greater randomness in axes:
private var x = Random.value - 0.5;
private var y = Random.value - 0.5;
private var z = Random.value - 0.5;
function Update()
{
transform.Rotate(x, y, z);
}
Simply set the x,y,z in the Update() loop if you want a jittery effect instead.
http://unity3d.com/support/documentation/ScriptReference/Random-value.html
You can also simply do this:
transform.rotation = Random.rotation;
But I doubt you'll want to change that every frame as it'll be hyper. It is good to use in the Start() function to set an initial random object rotation.
http://unity3d.com/support/documentation/ScriptReference/Random-rotation.html