proc/genstair()
new /turf/Dungeon/StairUp(locate(pick(/turf/Dungeon/Floor)))
new /turf/Dungeon/StairDown(locate(pick(/turf/Dungeon/Floor)))
Problem description:
The stairs are generated adjacent to one another, every single time. It doesn't appear to be an issue of separating the two actions because this generates the same result, as does using a list.