Q:

Change terminal color for each tab

I work on a lot of tabs in terminal at a given time.  Sometimes, I get tabs mixed up and accidently run commands on tabs I am not supposed to.  
To simplify this, I wish to write some script, that on each new tab creation, comes with a random background color (not the text background, the window background), so that I can easily identify the tabs I was working with. 
Any suggestions ?  

A:

The built-in default "Solid Colors" profile randomly selects a background color for each new terminal. 
It works by setting the background image to a folder of images, each of which is a solid color.  To choose different colors (or patterns, etc.)  you can place a collection of images in a folder and set a profile to use the folder in

Preferences > Profiles > [profile] > Text > Background > Image:

Another feature of profiles is that if you create a new terminal with Shell > New Command or New Remote Connection it will look for a profile with a matching name and select that profile.  It will look for a match of the entire command string, a partial match of the command name and arguments starting from the left, and it will also try to interpret the profile name as a regular expression. 
This means you can name a profile “ssh” to have it selected for any ssh command, or “ssh hostname” for ssh commands whose first argument matches hostname, for example. 

A:

I would highly recommend using iTerm2
I'm still finding cool new features.  I don't know about a truly random background color, but I know you can change your settings based on user, host, file system location.  Though, that feature may still be in beta.  
Yes, that's still in beta:

Automatic Profile Switching
  Using the Shell Integration feature, you can have iTerm2 switch profiles depending on what you're doing.  For example, you can define a profile that's always used when you ssh to some hostname.  Or when your username is root.  Or even when you're in a particular directory.