How do I randomize the start of animation when in use with particle system
Create a group of your objects with different animations timeframes.  Particles can operate on groups of objects.  Easy examples without animations might be a red sphere, blue cube, and orange cone in a group.

Python might help to create many objects with animation variation.  Cycles modifiers may help for particles created later in the particles system lifetimes. Cycles Modifier can repeat your keyframe animation 888 times or just 8 times.  

If the object is a single entity and not a group you can can create a group of your objects.  Then animate each object object efficiently by changing the keyframes or [Action constraint] or other relevant settings.

NLA editor can shift animations and repeat animations.  I cannot research that at this moment.

You can use textures to determines things such as start time of emission.  You must also have a frame range long enough to show such variation.

With Python or BAN (Blender Animation Nodes) there are other options to coordinate animated objects with the locations of particles.

These are high level ideas and not a tutorial because that might be a quicker start for you.