Instead of using [`get_categories()`](http://codex.wordpress.org/Function_Reference/get_categories), I'd suggest you take a look at [`wp_list_categories()`](http://codex.wordpress.org/Template_Tags/wp_list_categories). You can get the same output with it, but it has the benefit to be highly customizable.  

There are two ways for customization, either via the filter hook [`wp_list_categories`](http://adambrown.info/p/wp_hooks/hook/wp_list_categories) - see in [source](https://core.trac.wordpress.org/browser/tags/3.8.1/src//wp-includes/category-template.php#L486) - or by extending the [`Walker_Category`](http://codex.wordpress.org/Class_Reference/Walker_Category) class - see in [source](https://core.trac.wordpress.org/browser/tags/3.8.1/src//wp-includes/category-template.php#L767). The latter gives you much more possibilities for customizing, but might be over the top for minor changes. So you have to evaluate what fits your needs best.  

Because this topic is actually pretty well covered on WPSE and SO, I'll just give you a short list of references. Besides that you have not given a specific enough description of your needs, it remains a bit vague, although one can know what you want. Anyway, below resources should help you to chose the method fitting for you and additionally should enable you to achieve it.

 1. filter hook [`wp_list_categories`](http://adambrown.info/p/wp_hooks/hook/wp_list_categories)  
   - [How to get current_cat in navbar, in single post](http://wordpress.stackexchange.com/q/2009/22534)  
   - [Programmatically Add Font-Awesome Icons to Category Widget](http://wordpress.stackexchange.com/q/128247/22534)  
   - [WordPress - Advanced customize function wp_list_categories](http://stackoverflow.com/q/19518310/2505105)  
 2. [`Walker_Category`](http://codex.wordpress.org/Class_Reference/Walker_Category) class  
   - [wp_list_categories: get latest featured_image of category](http://wordpress.stackexchange.com/q/31725/22534)  
   - [How can I make wp_list_categories output li with category-slug as class, for its children?](http://wordpress.stackexchange.com/q/67791/22534)  
   - [How to display a category list in a mediawiki like way?](http://wordpress.stackexchange.com/q/27976/22534)  


One more remark, personally I would almost always opt for the extending the `Walker_Category` class method, but for cases where the change you want is very minor. This is of course a bit of personal preference, but has some background, particularly because of re-usability, extendability and - even if it doesn't necessary seem like it - after all it often - maybe even most of the time - is the easier way to achieve the custom output. 
<br>
<hr>

**Thumbnail from post in child category:**  

*This way you can retrieve your "category thumbnail" from a random post belonging to one of the child categories.*

I've commented the code to make it understandable for you how this is done, besides that it should be pretty much self-explanatory.

	/**
	 * wpse135208_cat_thumb_from_random_child.
	 *
	 * Get the thumbnail from a random post belonging to one of the child categories.
	 *
	 * @version 0.1
	 *
	 * @link http://wordpress.stackexchange.com/q/135208/22534
	 *
	 * @param integer $c_cat (default: '')
	 * @param string/array $size (default: 'post-thumbnail')
	 * @param string/array $attr (default: null)
	 *
	 * @return string
	 */
	function wpse135208_cat_thumb_from_random_child( $c_cat = '', $size = 'post-thumbnail', $attr = null ) {
		// do nothing if $c_cat is empty
		if( empty($c_cat) ) return;
		// get_terms is used because we only need ids
		$taxonomies = array(
			'category'
			);
		$args = array(
			'child_of' => $c_cat,
			'fields' => 'ids'
			);
		// returns an array of ids
		$child_cats = get_terms( $taxonomies, $args );
	    // use this for debugging
	    //echo '<pre>'; print_r($child_cats); echo '</pre>';
	
		$args = array(
			// we only want one post
			'post_per_page' => 1,
			// but we randomize this
			'order_by' => 'rand',
			'category__in' => $child_cats,
			'fields' => 'ids',
			// make sure only posts with featured image are considered
			'meta_query' => array(
				array(
					'key' => '_thumbnail_id',
					'compare' => 'EXISTS'
				)
			)
			);
		// returns an array containing one post id
		$ct_p_id = get_posts( $args );
		// use this for debugging
	    //echo '<pre>'; print_r($ct_p_id); echo '</pre>';

	    // use this for debugging
	    //echo '<pre>'; print_r( ( 1 /*change to 0 to show src info*/ ) ? get_the_post_thumbnail( $ct_p_id[0], $size, $attr ) : wp_get_attachment_image_src( get_post_thumbnail_id( $ct_p_id[0] ) ) ); echo '</pre>'; 
		// now we can use this to return our thumbnail
		return get_the_post_thumbnail( $ct_p_id[0], $size, $attr );
	}


Usage like this:

    echo wpse135208_cat_thumb_from_random_child( '1', 'thumbnail', null );

In your code use it like shown below:

    $categories = get_categories($args);
    foreach($categories as $category) { 
        echo wpse135208_cat_thumb_from_random_child($category->cat_ID); 
    } 


<br>
<hr>

**Category thumbnail via plugin:**  

*This has the benefit of having actual category thumbnails.*

I've given the plugin - [Category Thumbnails](http://wordpress.org/plugins/category-thumbnails/) - I mentioned in the comment above a quick test. It's generally working and I feel it's a better solution than what you're proposing in your answer, because it enables you to manage the thumbnails via the wordpress media library.

I discovered a minor bug, the plugin author is [notified](http://wordpress.org/support/view/plugin-reviews/category-thumbnails) and replied instantly, so the bug will be fixed soon. If you can't wait you can fix it yourself like this:

> However the function
> 
>     the_category_thumbnail();
> 
> doesn't produce a output. it looks like this in the source code of
> version 1.0.3 :
> 
>     function the_category_thumbnail($category_id = null, $sizes = array()) {
>         print get_the_category_thumbnail($cat, $sizes);
>     }
> 
> I managed to fix the problem like this:
> 
>     function the_category_thumbnail($category_id = null, $sizes = array()) {
>         print get_the_category_thumbnail($category_id, $sizes);
>     }
> 
> So, by making the parameter/argument name equal.

Or you just use `get_the_category_thumbnail()` instead, you just have to `echo` it:

    echo get_the_category_thumbnail('1');

Another minor disappointment is that the plugin and functions it offers doesn't give you the possibility to work with the generated image sizes. Which isn't that good, because we want the correct size and not always the full size. I'm going to notify the author about that too, so he can improve his plugin further. In the meantime this luckily can easily be fixed by constructing a custom function:

	/**
	 * wpse135208_cat_thumb_wrapper.
	 *
	 * Wrapper function to have the ability to use predefined image sizes via wp_get_attachment_image().
	 *
	 * @version 0.1
	 *
	 * @link http://wordpress.stackexchange.com/q/135208/22534
	 *
	 * @param integer $category_id (default: null)
	 * @param string/array $size (default: 'thumbnail')
	 * @param boolean $icon (default: false)
	 * @param string/array (default: null)
	 *
	 * @return string
	 */
	function wpse135208_cat_thumb_wrapper( $category_id = null, $size = 'thumbnail', $icon = false, $attr = null ) {
		$category_thumbnail_obj = get_the_category_data( $category_id );
		return wp_get_attachment_image( $category_thumbnail_obj->id, $size, $icon, $attr );
	}

Usage like this:

    echo wpse135208_cat_thumb_wrapper( '1', 'thumbnail', false, null );

This should help you to get this working. Like I said, it's preferable because you can manage your category thumbnail via the media library. In your code use it like shown below:

    $categories = get_categories($args);
    foreach($categories as $category) { 
        echo wpse135208_cat_thumb_wrapper($category->cat_ID); 
    }