Animation nodes Group instances
Use the Object Instancer Node to create a number of empty objects, fill a random list of the required source objects, copy the mesh data from the random object list to the empty objects, then position them as you want.