An interview for Fuzz Productions gave below as the test. I gave them my correct answer.

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.0.3/jquery.min.js"></script>
<script>
	(function() {
		// Answer goes here.
	})();
</script>
<style>
	body {
		font-family: monospace;
	}
</style>
<?php
	class su {
		//declare private vars
		private $s = "";
		private $sr = "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ?!@#$%^&*()";

		//load the input string
		public function load($v) {
		  $this->s = $v;
	  }

		//scramble the input string
		public function scramble() {
			$ss = str_split($this->s);
			$ssi = 0;
			$sl = strlen($this->s);

			//each iteration is 1 new row
		  while($ssi<$sl) {
				//fill 2-3 indices to be filled per row
				$r = rand(2,3);
				$spots = array();

				//store those 2-3 indices
				for ($j = 0; $j < $r; $j++) {
					$t = rand(0,99);
					if(!in_array($t,$spots)) array_push($spots,$t);
				}

				/* print output, either rand char (100/row, always) interspersed with
				 * 2-3 chars from the input string per row
				 */
				$m = 100+count($spots);
				for($j = 0; $j < $m; $j++) {
				if (!in_array($j,$spots)) { echo "<span>".substr($this->sr,rand(0,strlen($this->sr)-1),1)."</span>"; }
					else { echo "<span hidden>".$ss[$ssi++]."</span>"; }
				}
				echo "<br>";
		  }
		}

		public function unscramble() {
			/* see js solution
			 * furthermore http://quizzes.fuzzstaging.com/quizzes/web/1 doesn't have
			 * documentation on how it unscrambles so I coded this only to reflect
			 * its publicly observable behavior
			*/
		}

	}
	$a = new su;
	$a->load("Elegantly unscramble this message using the space provided. Then write the scrambler that made it. The answer is an object with global scope that can scramble and unscramble any text any number of times.");
	$a->scramble();
?>