function stickycase( str, p ) {
	var result = '';
	var char;
	var i;
	p = ( typeof p === 'number' && p >= 0 && p <= 1 ) ? p : 0.5;

	for ( i = 0; i < str.length; i++ ) {
		char = str.charAt( i );
		if ( bernoulli( p ) ) {
			char = char.toUpperCase();
		} else {
			char = char.toLowerCase();
		}
		result += char;
	}
	return result;
}
Converts a string to "sticky caps" case.

@param {string} str - input string
@param {number} [p=0.5] - probability of capitalization (between 0 and 1)
@returns {string} converted string

@example
var str = stickycase( 'hello world' );
// returns <string>

@example
var str = stickycase( 'hello world', 0.2 );
// returns <string>

@example
var str = stickycase( 'hello world', 0.8 );
// returns <string>

@example
var str = stickycase( 'hello world', '0.5' );
// returns <string>