Measuring distance between two devices? (<30m, as accurate as possible)

if there is a line of sight laser is the only option I know ==> Expensive.

Depending upon the background noise level (if low enough) you might consider a sort of sound echo.
Arduino 1 starts timer
Arduino 1 buzzes a piezo buzzer
Arduino 2 receives this (microphone) and buzzer back
Arduino 1 hear this and stops timer.

Alternative:
2 GPS shields and a radio wave to tell each others position (not very accurate)