Assign randomly a mesh to multiple faces
Yes, you can do this with a particle system.

Create some different rocks.

Group the objects by selecting them in object mode and pressing ctrlG; their outlines should now turn green. This is not into the same as putting them in the same mesh. This will leave each object as it is, so each object can have different modifiers, meshes, materials, and all that. "Grouping" is just a way to tell Blender that these objects should all be treated in a certain way, like as the particles in a particle system... or other things. Once you group them, you can go to the object tab and you'll see a "group." An object can be a member of more than one group. If it is, you'll see multiple "group" panels there. To remove an object from a group, you'll just click the X on that panel, like you would with a modifier.

Add a particle system to the "pile." In the "render" section of the particle system select "group." Then choose the group that you put all your different rocks in.

This will randomly select rocks from that group and distribute them over the surface of the "pile." There are other settings for how to handle groups, but the defaults should work for your purpose.

Increase the "emission" value to make more rocks.