1. A method for assigning an attribute to an agent or a plurality of agents for use in an agent based model, comprising: receiving or selecting a first numerical value for assigning an attribute of an agent in an agent-based model; receiving or selecting a random numerical value; blending the first and random numerical values, resulting in an intermediate value; blending the intermediate result with the first numerical value, or the random numerical value, or with a second numerical value, resulting in an end value; utilizing the end value to assign the attribute of the agent in the agent-based model; repeating both of the receiving or selecting steps, both of the blending steps, and the utilizing step a plurality of times to define a plurality of attributes for the agent or to define an attribute for a plurality of agents; and introducing said agent or agents to a stimulus and determining a reaction of said agent or agents to simulate human behavior, and wherein the first and second blending steps include blending the associated values according to the following equation: g ⁡ ( u 1 , u 2 ) = { ( u 1 + u 2 ) 2 2 if ⁢ ⁢ u 1 + u 2 < 1 2 - ( 2 - u 1 - u 2 ) 2 2 otherwise } wherein u 1 represents a first value to be blended, u 2 represents a second value to be blended, and g(u 1 , u 2 ) represents an output of the blending step.