private static ArrayList getRandomPopulation(IWeapon parent, float efficiencyPercentage)
        {
            ArrayList population = new ArrayList();
            float[] parentCharacteristics = parent.getCharacteristics();
            float[] parentWeaponBias = parent.getWeaponBias();

            for (int i = 0; i < populationSize; i++)
            {
                float[] characteristics = new float[(int)IWeapon.Stats.END];
                for (int j = 0; j < (int)IWeapon.Stats.END; j++)
                {
                    characteristics[j] = parentCharacteristics[j]
                        + (float)random.NextDouble() * parentWeaponBias[j] * efficiencyPercentage;
                }
                population.Add(characteristics);
            }
            return population;
        }