You can create a sphere randomly filled with dots either in a replicator or an emitter by setting the 3D option and from the Shape selector, choose Sphere and for the Arrangement, choose Random Fill. It is definitely an optional starting point. (I just used a Point emitter... see below).
The basic idea is to move the dots around in a seemingly independent motion while having them all follow a general "track". The easiest way to do that is to create a shape — a rectangle will usually do. Next, draw a bezier line that you want the general "action" to follow and add a Motion Path behavior to the shape and apply they bezier line as the Geometry setting.
Apply a Behaviors > Simulations > Attracted To behavior to the Emitter or Replicator (Emitter will be fine, and with a Scale over Life, you can create an illusion of Z-space motion.) Set the Shape for the Attracted To's Object. Include X,Y and Z and as a starting point, set the Strength to about 250. [Strength is a tricky thing: you think greater numbers will mean it will stick to the object better, but that is not necessarily so: the increased speed created tends to "throw" objects much further afield if the strength is too high. If the strength is to low, everything slows down too much. Influence should be kept somewhat high if you don't want some objects "wandering off" if they get out of the sphere of influence of the attractor object. That's why I also recommend the following:)
Apply a Behaviors > Simulations > Attractor behavior to the emitter as well. Set the Strength to about 100 and the influence to 1000 (give or take). This will keep all the particles grouped together a little better (this is an optional addition; if you want to keep it simple, it can be omitted.)
That's the basics. I have this demo: https://www.youtube.com/watch?v=xLBUMsUVPoA
The rectangle shape is shown (outline/low opacity) so you can see how the emitter follows it. The shape actually IS following a Motion Path, but in the Motion Path behavior, I set the Speed to Custom and keyframed the custom speed parameter with Constant interpolation position changes (making the rectangle "jump" from location to location.) The emitter will change directions every time it is reset. At the end, I keyframe the size of the rectangle to make the swarm "grow" (giving the impression of being "close" to the viewer.) I also use the Scale over Live behavior to start them off very small (distant) to larger and change the shape from oval to circular since I couldn't get the Snap Alignment to Motion to make a difference.
For the emitter:
I used a Shape: Point and turned on 3D [I also have Render Particles in Global 3D - I'm not sure this will make a difference unless you need to bypass Layer order.) I set the Emission Range to 360 and the other two to 0. I delayed that start of "Birth Rate" briefly and keyframed about a second of births to build up the Swarm (0 to 2000). At the end of the build up, I set the keyframe back to 0 -- no more births. Set the Life to a sufficiently high number so that all the particles will always live. Set the Speed to about 100 and Speed Randomness to about 350.
All the rest is "season to taste"... Have fun! (Hope this helps.)