in first commit i implemented the task in red-green style and just done the task
in second commit i use channel for handle generated random string and communications between functions with 6 Minutes avg time for totaly random length strings
in third commit i decrease avg time to 11 second instead of 6 minutes !!! with using constant string length and buffered channel , between even i use 1000 for random strings length its not increase avg time over than 1 or 2 seconds !!