Make router_choose_random_node() linear instead of quadratic
See parent for motivation.
The smartlist_subtract() function is O(m*n), so we should try not to use it here if we can.
See parent for motivation.
The smartlist_subtract() function is O(m*n), so we should try not to use it here if we can.