it’s right here in the codex.
This is example code, showing how a new user is created:
$user_id = username_exists( $user_name );
if ( !$user_id and email_exists($user_email) == false ) {
$random_password = wp_generate_password( $length=12, $include_standard_special_chars=false );
$user_id = wp_create_user( $user_name, $random_password, $user_email );
} else {
$random_password = __('User already exists. Password inherited.');
}
and here, another wrapper version with more functionality.
$website = "http://example.com";
$userdata = array(
'user_login' => 'login_name',
'user_url' => $website,
'user_pass' => NULL // When creating an user, `user_pass` is expected.
);
$user_id = wp_insert_user( $userdata ) ;
//On success
if ( ! is_wp_error( $user_id ) ) {
echo "User created : ". $user_id;
}
The part about constructing the form, integrating with mailchip, etc – better to be asked in a different question if you need to see examples of code to cover that part of your question.