This is the weirdest bug ever.
So I switched the "World" node from being the spawner to having a new node, zombie_spawner, to be what creats them randomly. It works... sort of? I could probably fix most of this bug by having the zombies not automatically chasing the player, but to do so whenever the player enters the raycast... but check out this bug.

One of the zombies, for some weird reason, doesn't chase the player, and instead spins around it at a hundred miles an hour. It's the one that is wandering sideways. All of the other spawned ones work. Only one of them is originally in the game to keep the game from saying the zombies can't find the player node, and that is not the weird one.
And, I'm guessing I'm not the only one who would love to spawn random enemies, so... Here's the code that I have so far:
var x_range
var y_range
var timer
func _init():
move_to()
timer = Timer.new()
add_child(timer)
timer.autostart = true
timer.wait_time = 0.1
timer.connect("timeout", self, "_timeout")
func _ready():
randomize()
func _timeout():
spawn_zombie()
func spawn_zombie():
var zombie_basic = Zombie_Basic.instance()
add_child(zombie_basic)
func _on_ZombieSpawner_body_entered(body):
move_to()
func move_to():
var x_range = Vector2(100, 400)
var y_range = Vector2(100, 400)
var random_x = randi() % int(x_range[1]- x_range[0]) + 1 + x_range[0]
var random_y = randi() % int(y_range[1]-y_range[0]) + 1 + y_range[0]
var random_pos = Vector2(random_x, random_y)
position=random_pos
func _on_Player_start_day():
_init()