implement proper random distances

Signed-off-by: Andrew 'Necromant' Andrianov <andrew@ncrmnt.org>