The problem is, you create stones double (or more times) on the same position with your method, since you pick wrong.
Because you say, if ANY tile is overlapping Sprite2, pick any tile from all tiles (also the ones not overlapping Sprite2).
You mean, pick random tile, which IS overlapping Sprite2, and place it on screen.
Capx attached. Also, better to say, if object is off screen, to spare one object, and the unnecessary collision checking.
It solves your problem, but still, its not the best method, since it can happen, that some stones stay off screen. You need to make sure, they all get positioned.
Use arrays to do that, like in the "scramble_scrabble" following example, just with 0 and 1-s (no stone or stone).