Without using complex maths or using Area2D nodes I think the best way is checking the distances.
Since they are Node2D they have global_position
property.
When generating them you have to add them to the scene but I suggest you to keep track of them using an array.
As soon as you create a new node, iterate through all existing sprites (stored in the array)
and check if sprite.global_position.distance_to(existing_sprite_pos)
is < min_distance
.
If it is less that a given minimum distance, create a new position and try again.
It may not be the best solution from a computational point of view but it also depends on the size of your problem.