JSFiddle - React, Tailwind, and code Playground

HTML

<div class="game">
    <div class="row">
        <div class="cell"></div>
        <div class="cell"></div>
        <div class="cell"></div>
        <div class="cell"></div>
        <div class="cell"></div>
        <div class="cell"></div>
        <div class="cell"></div>
    </div>
    <div class="row">
        <div class="cell"></div>
        <div class="cell"></div>
        <div class="cell"></div>
        <div class="cell"></div>
        <div class="cell"></div>
        <div class="cell"></div>
        <div class="cell"></div>
    </div>
    <div class="row">
        <div class="cell"></div>
        <div class="cell"></div>
        <div class="cell"></div>
        <div class="cell"></div>
        <div class="cell"></div>
        <div class="cell"></div>
        <div class="cell"></div>
    </div>
    <div class="row">
        <div class="cell"></div>
        <div class="cell"></div>
        <div class="cell"></div>
        <div class="cell"></div>
        <div class="cell"></div>
        <div class="cell"></div>
        <div class="cell"></div>
    </div>
    <div id="scorediv">
        Score: <span id="score">0</span><br />
    </div>
</div>

CSS

.game {
    width: 416px;
    padding: 4px;
    background-color: #ccc;
    margin: 20px auto;
    border: 1px solid black;
    box-shadow: 0 0 3px black;
}

.cell {
    width: 50px;
    height: 50px;
    display: inline-block;
    margin: 2px;
    border: 1px solid black;
    background-color: #999;
}

.cell.active {
    background-color: green;
    box-shadow: inset 0 0 3px #000;
    
}

.cell.squashed {
    background-color: red;   
    box-shadow: inset 0 0 5px #000;
}

#scorediv {
    text-align: center;   
}

JavaScript

(function (delay, diffMultiplier) {
    var $prev = $(null), clk;
    (function w() {
        var $cells = $(".cell:not(.active,.squashed)"),
            $next = $($cells.get(0 | (Math.random() * $cells.size())));
        $prev.removeClass("active").off("click", clk);

        $prev = $next.addClass("active").on("click", (clk = function () {
            $("#score").text(50 + (+$("#score").text()));
            delay *= diffMultiplier;
            $next.addClass("squashed").removeClass("active").off("click", clk); 
            setTimeout(function() { $next.removeClass("squashed") }, 250);
        }));
      
        setTimeout(w, delay);
    }());
}(1000, .98)); 
//The two arguments are:
//1: Starting delay in milliseconds
//2: Difficulty multiplier (lower this to make things harder faster).