The same as above but instead of at the start of layout use every x seconds or something.
To only have tiles near the player bubble, use the pick by comparison condition with the distance expression to only pick tiles in a radius from the player.
You could also compare the x and y positions of the tiles to the edges of the screen.
Like for x you could do the picking like this:
X > viewleft
The same could be done for y.
A third idea would be to have an invisible sprite pinned to the player and then only pick tiles overlapping that tile.