I have followed the setup in and got the expected result (bottom part of image).
However, if I duplicate the sphere, all the spheres will have the same colour and same wave texture (say, 2 of the blue spheres in the above image - but not, one whose wave texture is rotated - eg. the blue and yellow spheres have a wave texture that is slightly rotated).
I am able to have a different colour for the spheres (by using object info and color ramp), but I do not know how to have each sphere's wave texture have a different rotation.
Initially, I used randomize transform (specifically used a random rotation), but did not have any effect on the wave texture (the objects are rotated, but the wave texture isn't).
I then used a mapping node as in the following: connecting the vector output of mapping to vector input of wave texture (and changing the rotation of the mapping node).
This does change the rotation of the wave texture, but I have to manually specify the rotation and each sphere needs a new material.
So how do I have a single material that has a random rotation on the wave texture?
EDIT: I tried to "group the above node tree, apply it on x and y values (just as above) then the output of that applied on the x and z and finally the y and z", but none of the combinations work as I would like. I have linked to a blend file containing my trial and errors