This week's book giveaway is in the JavaFX forum. We're giving away four copies of Introducing JavaFX 8 Programming and have Herbert Schildt on-line! See this thread for details.

Randomness has to do with whether something is deterministic or not. In general, something is considered random if the output can't be determined from the input.

Chaos has to do with how the output varies with the input. Something is very chaotic, if even a small flucuation of the input yields drastic changes in the output.

So... it is perfectly fine for something to be chaotic, and yet deterministic, so, no random.

Chaos theory is a field which covers this, and in general works with "fuzzy" like math -- results are given with plus / minus an error. Something is considered very chaotic, if the plus and minus get huge, which I guess, is often confused with randomness.

Henry Wong wrote: Something is very chaotic, if even a small flucuation of the input yields drastic changes in the output.

Well, in cryptographic functions, which are not at all random, it is a requirement that small changes in input result in differences in the output. Specifically, changing any bit in the input much have a probabilistic chance of changing each bit of the output. So if you change one bit, its not good (cryptographically) if you can predict which bit will change.

So I'm not sure if most cryptographic functions would be considered chaotic by @Henry's definition. I'm pretty sure he didn't mean that.

Without the OP filling in some details, its really hard to make non-random responses.

IMO: Randomness is unpredictability, non-determinism; chaos is related to instability.
Life is random, in general but it becomes chaotic when you cannot handle its randomness.

On the other hand, a highly chaotic function is useful for generating pseudorandom values, which appear random, but are actually deterministically derived from some other (possibly hidden) input. Like, say, the value of System.currentTimeMillis().