This is one way to do it
add_action('user_register', 'set_custom_default_role')
function set_custom_default_role($user_id) {
// Maybe get available referral codes from database & compare them against the one available
if(true) {
$user = new WP_User( $user_id );
$user->set_role('custom-role-slug');
}
}