I’m not sure if my suggestion can fit your game, but what I would do, is to change animation randomly of specified objects.
Just place every object in to the scene, and use an object variable (animation) for every object to store animation number.
Store animations in separated animation sets for all object, and at the beginning of the scene, generate random value for each object
variable (animation) and use this variable to change animation of objects.
For example, you have an object that has an animation set of rockbottom and crystall.
Animation 0 : no animation (empty transparent image if you need)
Animation 1 : rockbottom
Animation 2 : crystall
Create an object variable, and at the beginning generate a random value for each object variable
For each object: name of object
At the beginning of the scene: Do =Random(2) to variable animation of object
Finally, change animation of object by using it variable
For each object: name of object
At the beginning of the scene: Do =object.Variable(animation) to the number of current animation of object
If you also want to change position, direction of object randomly, do exactly the same. Create object variable to store
X,Y position and direction of object, generate random value for variables at the beginning and finally set object position, direction by using the object variables for each object.
For each object: name of object
At the beginning of the scene: Do =object.Variable(x_position);=object.Variable(y_position) to the position of object
Do =object.Variable(direction) to the direction of object
To run different actions for objects with different animations, simply also check the actual animation of object.
if player is in collision with object and object variable = 0 then do something if =1 do something else.
Otherwise, if you want to create some objects in random position 1 by 1, probably I would do the same only create objects instead of changing animation and I would also use the repeat event, to set how many times I want to create an object, how many objects I want in the scene, also to make sure 2 objects is not overlapping each other, I would run an event to move created object in X,Y position until not colliding with an other object, or regenerate X,Y coordinates until it not colliding with another object.
Hope it helps.