You can randomly distribute points in a circle with a generator. Don't forget to slice the last element since it will be the center of the circle.
Add your empty's position to translate your circle points.
Add your cube, scale it accordingly and apply the transform with CTRL + A. Then instance it and use the previous coordinates.
Add a random array of vectors for the rotation. You can tweak the seed in the node.
Add a vector wiggle node for location. You can tweak the seed and the evolution for a nice wiggle effect. You can also use this node for the rotation to achieve the same effect. Add a float input for the amplitude of the translation.
Add a relevant shader to the base cube :
Now make it wiggle !
Result :
EDIT : Actually I didn't answer the question. You can do the actual rotation several ways. Here's how I would do it :
Create a subprogram and rotate the cubes along the Y axis, then around the Z axis so that they face the center of the circle.
Actual result :