Yes, Custom Fields is a good answer for that.
To make things easier there's a couple of plugins that can automate the process and create a nice interface for that.
One is Advanced Custom Fields, but its Repeatable Field is a premium add-on, so I'll show how to do it with another one.
This plugin also manages Custom Post Types, but, if you already created yours, they'll appear as "externally created".
Anyway, it also handles Custom Fields and you can assign them to any CPTs.
Bellow, a snapshot of a Gallery CPT that has only the Title enabled, plus one repeatable field for Images and another field for RelationShip (this can be any post type: post, page, cpt, attachment).
You'll have to read the plugin documentation on how to implement those CF's with your Theme code.
Sample code on how to retrieve the repeatable image field named
$the_imgs = get_custom_field('gallery_img:to_array');
foreach( $the_imgs as $img )
list( $url, $width, $height ) = wp_get_attachment_image_src( $img, 'thumbnail' );
echo '<img src="' . $url . '" width="' . $width . '" height="' . $height . '"><br />';