You are doing metadata correct, but wrap the generation code in a for loop and loop it like 50 times and than it should spawn more, because as far as i can see, your code only spawns one group of ores in each chunk 
  
try this one, lower the 50 in the for loop too your needs 
 
public void generateSurface(World world, Random rand, int chunkX, int chunkZ) {
int randPosX, randPosY, randPosZ, randSize;
for(int i = 0; i < 50; i++){
randPosX = (chunkX * 16) + rand.nextInt(16);
randPosY = rand.nextInt(64);
randPosZ = (chunkZ * 16) + rand.nextInt(16);
randSize = rand.nextInt(12);
//the 18 is ment to be the blockOremeta.blockID, metadata
(new WorldGenMinable(es_main_blocks.blockOremeta.blockID, 18, 50)).generate(world, rand,
randPosX, randPosY, randPosZ);
}
}