Quick walkthrough of shader creation for procedural clouds. When you follow this, you will know how to simply duplicate a cube to get unique cloud for each object.
For more complicated shapes you can simply combine cubes (keeping them as separate objects) or add more noise textures with different blending modes.
And the best thing? It uses very low memory to generate really complicated cloud shapes.
Or use a particle system (instancing a cube with randomized size, rotation etc) and still – each cloud will be unique.