How to display user’s nickname by default instead of username

Instead of wp_create_user, use wp_insert_user. So you will be able to set extra variables like nickname, display_name separately than the default value.

For your case, you can code like this:

$args = array (
    'user_login'     => $user_name,
    'user_pass'      => $random_password, //send as plain text password string
    'user_email'     => $user_email,
    'nickname'       => $user_nickName,
    'display_name'   => $user_nickName
);

wp_insert_user( $args); //on success, it will return user id

Here is the codex refernece for wp_insert_user