Twenty fifteen – Theme background customization

Twenty Fifteen has a hook for you to modify the custom background theme_support arguments (documentation for those arguments here):

// Setup the WordPress core custom background feature.
add_theme_support( 'custom-background',
    apply_filters( 'twentyfifteen_custom_background_args',
        array(
            'default-color'      => $default_color,
            'default-attachment' => 'fixed',
) ) );

You can implement this filter in your child theme’s functions.php, e.g.

function wpse_224240_custom_background_args($args) {
    $args['default-image'] = get_stylesheet_directory_uri() . '/images/background.jpg';
    return $args;
}
add_filter( 'twentyfifteen_custom_background_args',
            'wpse_224240_custom_background_args' );

and add any extra logic you need to change the image there. For example if you want a specific different image per post then you could store that in post metadata and only set the 'default-image' if you have a different URL from metadata to use. If you wanted to pick a random one from a set you can do this here too, etc., either hard-coding the set or storing it as an option if you’d like it configurable.